我正在尝试根据这些主题使用以下代码获取所有类型:
所以我有这个属性:
public class DataLayerInterfaceAttribute : System.Attribute
{
public DataLayerInterfaceAttribute() { }
}
我有这个界面:
[DataLayerInterfaceAttribute]
interface IInterface
{
void Method(string param);
}
最后我想得到接口类型:
var types = from type in assembly.GetTypes()
where Attribute.IsDefined(type, typeof(DataLayerInterfaceAttribute))
select type;
我已经对此进行了测试:
var types = from type in assembly.GetTypes()
where type.GetCustomAttributes(type,true).Length > 0
select type;
但是两者的结果都是空的,我不知道为什么。
编辑
我得到这样的程序集:
string assemblyName = System.Reflection.Assembly.GetExecutingAssembly().Location;
byte[] assemblyBytes = File.ReadAllBytes(assemblyName);
Assembly assembly = Assembly.Load(assemblyBytes);