Frage: Attribute Verwendung...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage: Attribute Verwendung...

    Hallo,

    ich bin neulich auf die Attribute in C# gestossen, ich habe mir die Beschreibung auf MSDN durchgelesen, verstehe aber immer noch nicht wie man sie verwendet.

    Bin bisher soweit gekommen, dass ich eine Attributsklasse habe:
    (Habe das mehr oder weniger verstanden.)

    Quellcode

    1. [AttributeUsage(
    2. AttributeTargets.All,
    3. AllowMultiple = false,
    4. Inherited = true
    5. )]
    6. public class MyAttribute : Attribute
    7. {
    8. public string Vorname { get; set; }
    9. public string Nachname { get; set; }
    10. }


    Und wie ich die Attribute dan festlege:
    (Ist recht simpel zu verstehen.)

    Quellcode

    1. [My(
    2. Vorname = "Viktor",
    3. Nachname = "M"
    4. )]
    5. public class Irgentwas
    6. {
    7. }


    Was ich aber noch garnicht verstanden habe ist, wie ich auf diese festgelegten Attribute dann in der Irgentwas Klasse zugreifen kann.
    Kennt sich einer damit aus und weis mir zu helfen?
  • Habs herausgefunden, hier ist ein Beispiel.

    Quellcode

    1. public class AnimalTypeAttribute : Attribute
    2. {
    3. public string Pet
    4. {
    5. get;
    6. set;
    7. }
    8. }
    9. [AnimalType(
    10. Pet = "Maja"
    11. )]
    12. class AnimalTypeTestClass
    13. {
    14. }
    15. class DemoClass
    16. {
    17. public static string GetDemo()
    18. {
    19. string ret = "";
    20. AnimalTypeTestClass testClass = new AnimalTypeTestClass();
    21. MemberInfo mInfo = testClass.GetType();
    22. foreach (Attribute attr in Attribute.GetCustomAttributes(mInfo))
    23. {
    24. if (attr.GetType() == typeof(AnimalTypeAttribute))
    25. ret += mInfo.Name + "->" + ((AnimalTypeAttribute)attr).Pet;
    26. }
    27. return ret;
    28. }
    29. }
    30. //Console.WriteLine(DemoClass.GetDemo());
    31. //Ausgabe: 'AnimalTypeTestClass->Maja'
    Alles anzeigen