我正在尝试根据以下主题获取以下代码的所有类型:
所以我有这个属性:
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);