【发布时间】:2008-11-20 08:55:20
【问题描述】:
运行以下代码时,永远不会返回类型,尽管已分配了正确属性的类。事实上,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 返回一个空值。
有什么想法吗?
【问题讨论】:
标签: c# .net reflection attributes