如何使用自定义属性获取所有类型

时间:2013-09-27 14:16:50

标签: c# reflection attributes

我正在尝试根据以下主题获取以下代码的所有类型:

所以我有这个属性:

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);

0 个答案:

没有答案