我有一个带有T4模板的PCL(可移植类库)项目。在T4模板中,我需要迭代mscorlib中的所有类型;但只有PCL支持的类型 - 我在生成的代码中使用这些类型。我该怎么办?
接下来我接受了尝试:
const string Root = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable";
const string Version = "v4.6";
var assemblyPath = Path.Combine(Root, Version, "mscorlib.dll");
// v1 - "types" is empty array
var bytes = File.ReadAllBytes(assemblyPath);
var assembly = Assembly.ReflectionOnlyLoad(bytes);
var types = assembly.GetTypes();
// v2 - "types" contains non-PCL types, like System.Runtime.Serialization.ISerializable
var assembly = Assembly.LoadFile(assemblyPath);
var types = assembly.GetTypes();
有没有办法只迭代PCL类型,除了查询每种类型的MSDN并解析它? :о)