17 c# reflection t4
我希望得到特定程序集中的所有类,这是我的代码
var assembly=Assembly.GetExecutingAssembly();
var assemblies = assembly.GetTypes().Where(t => String.Equals(t.Namespace, "RepoLib.Rts.Web.Plugins.Profiler.Models", StringComparison.Ordinal)).ToArray();
Run Code Online (Sandbox Code Playgroud)
当c#代码所有东西都没问题我得到我的程序集但是当写入t4文件我没有任何错误但我的程序集计数是.
Dan*_*rth 33
在T4模板中,执行程序集不是你的,而是来自T4引擎的程序集.
要从程序集中访问类型,必须执行以下步骤:
将程序集的引用添加到模板.把它放在它的顶部:
<#@ assembly name="$(SolutionDir)<Project>\bin\Debug\<Project>.dll" #>
Run Code Online (Sandbox Code Playgroud)导入程序集的命名空间.把它放在上一行的下方:
<#@ import namespace="<Project>.<Namespace>" #>
Run Code Online (Sandbox Code Playgroud)要访问此程序集中的类型,请选择其中一个并从中获取程序集:
var assembly = typeof(<Type in assembly>).Assembly;
var types = assembly.GetTypes()
.Where(t => String.Equals(
t.Namespace,
"RepoLib.Rts.Web.Plugins.Profiler.Models",
StringComparison.Ordinal))
.ToArray();
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
8493 次 |
| 最近记录: |