基于属性的项目之间的反思

时间:2015-12-05 17:55:17

标签: c# reflection attributes

我有2个项目,项目A和项目B.

在项目A中,我有一个用Myperson属性修饰的ClsPersoon类。

在项目B中,我使用项目A的exe文件的反射,我想选择具有customAttribute MyPerson的al类型,但是我在getCustomAttributes上遇到错误,因为项目B中不知道该属性。

如何在两个项目之间没有参考的情况下解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您愿意匹配名称,那么Attribute类上有静态方法可以获取特定目标的自定义属性:

static IEnumerable<Type> TypesWithAttribute(Assembly a, string attributeName )
{
  return
    a
    .GetTypes( )
    .Where
    (
      t =>
        Attribute
        .GetCustomAttributes( t )
        .Any
        (
          att =>
          att.GetType( ).Name == attributeName
      ) 
    );
}