运行下面的代码时,永远不会返回类型,尽管有一个分配了正确属性的类。实际上 attr 数组的长度始终为 0。
Assembly a = Assembly.LoadFile(file);
foreach (Type t in a.GetTypes())
{
object[] attr = t.GetCustomAttributes(typeof(SchemeNameAttribute), false);
foreach (object attribute in attr)
{
SchemeNameAttribute schemeName = attribute as SchemeNameAttribute;
if (schemeName != null && schemeName.Name.ToLower() == brickName.ToLower() )
{
return t;
}
}
}
如果我将其更改为使用:
object[] attr = t.GetCustomAttributes(false);
然后它为该类型选择一个 SchemeNameAttribute 类型的自定义属性,但是
SchemeNameAttribute schemeName = attribute as SchemeNameAttribute;
总是为 schemeName 返回一个空值。
有任何想法吗?