Как получить значение из атрибута? - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д