При выполнении приведенного ниже кода тип никогда не возвращается, несмотря на наличие класса с назначенным правильным атрибутом. На самом деле массив 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;
всегда возвращает нулевое значение для имя_схемы.
Есть идеи?