Как получить значение из атрибута? - C#
Формулировка задачи:
Атрибуты Attribut GetCustomAttributes GetField
не очень понимаю атрибуты
вот пример
обьект на котором применяеться
А как получить значение с атрибута
в смысле Name что хранит значение
получить его
шаманил вот так
отдельный метод через который я получу значение Name
Но к сожалению не выходит
Msdn читкал не помогло
есть ли пример или обьяснение этого
И как можно значения обьекта получить атрибуту
и использовать - а потом через метод получить результат
проверки атрибутом
вот что на мысль попадает
Ну и метод что получит этот ErrorMessage и его ответ
public class ObjectCodeAttribute : Attribute
{
private readonly string _value;
public ObjectCodeAttribute(string value)
{
_value = value;
}
public string Value
{
get { return _value; }
}
public string ErrorMessage { get; set; }
} public class ObjectTest
{
[ObjectCode("Form1",ErrorMessage = "Ошибка выполнения 1")]
public string Name { get; set; }
[ObjectCode("Form2", ErrorMessage = "Ошибка выполнения 2")]
public string First { get; set; }
}public class GetAttributeValue
{
public void GetStringValue(ObjectTest obj)
{
string str = string.Empty;
//ObjectCodeAttribute aAttributes = Attribute.GetCustomAttributes(typeof(ObjectTest)) as ObjectCodeAttribute;
//MethodInfo method = clsType.GetMethod("");
//ParameterInfo[] parameters = method.GetProperties();
Type type = obj.Name.GetType();
FieldInfo fi = type.GetField("Name");
try
{
object[] attrs =
fi.GetCustomAttributes(typeof(ObjectCodeAttribute), false);
foreach (var p in attrs)
{
str += p;
}
}
catch (Exception ex)
{
str = ex.Message + "\n\n"+ex.StackTrace;
}
Console.WriteLine(str);
}fi.GetCustomAttributes(typeof(ObjectCodeAttribute), false);
public class ObjectCodeAttribute : Attribute
{
private readonly string _value;
public ObjectCodeAttribute(string value)
{
_value = value;
if(_value.Length<=Line)
{
ErrorMessage="Длина Name слишком длинная";
}
}
public string Value
{
get { return _value; }
}
public string ErrorMessage { get; set; }
public int Line {get;set;}
}Решение задачи: «Как получить значение из атрибута?»
textual
Листинг программы
ObjectTest obj=new ObjectTest (); obj.Name="hgjhgjhghg"; //Определяло Name по obj.Name автоматом GetVeryfication(obj,obj.Name)