Eigene Attributte

Reverent

Erfahrenes Mitglied
Hallo Leute,
ich habe mal versucht mir eigene Attribute zu gestalten und so weit hat es auch ganz gut geklappt.
Nur mein Problem ist, ich habe jetzt eine Klasse z.B. MyClass
Code:
public clas MyClass
{
   private string myString;
   private int myInt;
   ...

   [MyAttribute(...)]
   public string MyString
   {
       get{...}
       set{...}
   }

   [MyAttribute(...)]
   public int MyInt
   {
       get{...}
       set{...}
   }
}
Jetzt möchte ich auf der Form diese Attribute auslesen und entsprechent Auswerten, aber
ich komme da einfach nicht ran.
Die Werte bekomme ich nicht ausgelesen.
Ich hoffe ihr habr da eine kleine Lösung für, danke schon mal!!

Bis dann
Markus
 
So in etwa:
C#:
private void ReadAttributes()
{
    Assembly a = Assembly.GetExecutingAssembly();
    Module[] mods = a.GetModules();
    foreach (Module mod in mods)
    {
        MethodInfo[] minfos = mod.GetMethods();
        foreach (MethodInfo mi in minfos)
        {
            object[] setAttributes = mi.GetCustomAttributes(true);
        }
    }
}
 
Hallo Norbert,

alles klar danke soweit habe ich es geschaft.
Aber noch ein weiteres Problem hat sich auf getan, und zwar ich habe z.b.
Code:
public class MyClass
{
   private string name;
   private string strasse;
   private string ort;
   ...

   [MyAttribute(...)]
   public string Name
   {
       get{...}
       set{...}
   }

   [MyAttribute(...)]
   public string Strasse
   {
       get{...}
       set{...}
   }
   ...
}
und nun instanziere ich ein Objekt
Code:
MyClass a = MyClass()
a.Name = "xyz";
a.Strasse "abc";
...
Dies Objekt über gebe ich nun an eine weitere Klasse und in der Klasse möchte ich nun abfragen welche Proberties habe Werte zugewiesen bekommen.
In dem Beispiel halt 'Name' und die 'Strasse'.
Komme ich an die zugewissenen Wert ran, so z.B. über a.GetProberty, halt eingebetten in einer foreach Schleife.

Ich hoffe Ihr wisst was ich meine.

Bis Dann
Markus
 
Zuletzt bearbeitet:
Also ganz verstehe ich nicht was du meinst:

Ist die Klasse, die du übergibst, in der Ziel-Klasse bekannt? Also weißt du welches Objekt da daherkommt, oder ist die Klasse nicht bekannt, weil prinzipiell jedes Objekt daherkommen könnte? Im ersteren Fall kein Problem. Du fragst einfach die Eigenschaft nach den Werten ab. Im zweiten Fall musst du dir per Reflection (so wie bei den Attributen) eine Liste der Properties und fragst die Werte ab.
 
Hallo Norbert,
das Szenario stellt sich so da, ich über gebe die Objekte von der Businessschicht an die Datenbankschicht und die Objekte dienen mir zum Datentranzport zwieschen den Schichten.
Inder Datenbankschicht möchte ich dann überprüfen "welche Variablen gefüllt sind".
Ich hatte mir jetzt gedacht da ich ja über GetProberties in einer foreach Schleife an die Attribute gekommen bin, komme ich dann ach an die Werte ran die in den Proberties gespeichert sind.
Danke noch mal Norbert für deine Bemühungen.

Bis dann
Markus
 
Zurück