У меня есть этот код:Как получить атрибуты значение
[MyAttribute(CustomAttribute="Value")]
class MyClass
{
// some code
}
Main()
{
MyClass a = new MyClass();
}
Как получить значение CustomAttribute для экземпляра?
У меня есть этот код:Как получить атрибуты значение
[MyAttribute(CustomAttribute="Value")]
class MyClass
{
// some code
}
Main()
{
MyClass a = new MyClass();
}
Как получить значение CustomAttribute для экземпляра?
Вдоль линии:
MyAttribute [] myAttributes
= (MyAttribute [])a.GetType().GetCustomAttributes(typeof(MyAttribute),true);
Не понимаю, что вы имеете в виду под «без использования Еогеасп», за исключением того, что GetCustomAttributes всегда возвращает массив из них (для учета наличия нескольких атрибутов) , Если вы знаете, что может быть только один, то просто используйте первый.
MyAttribute theAttrib = myAttributes[0];
Console.WriteLine(theAttrib.CustomAttribute);
Существует хороший пример здесь:
http://msdn.microsoft.com/en-us/library/z919e8tw.aspx
Чтобы сделать это без Еогеаспа вы должны предположить, что нет никаких других атрибутов применяются к типу, и индексировать первый атрибут напрямую.
var attribs = (MyAttributeAttribute[]) typeof(MyClass).GetCustomAttributes(
typeof(MyAttributeAttribute),
true);
Console.WriteLine(attribs[0].CustomAttribute); // prints 'Value'
«Не понимает, что вы имеете в виду„без использования Еогеаспа“» -> я нахожу некоторые плохие примеры, которые используют Еогеасп читать все атрибуты дорожат – Dusan
Да, но плохие примеры только что - примеры - вы должны взять знания, которые они дают, и использовать их, как вы считаете нужным. – Jamiec