Laden...

Vollqualifizierten Namen eines Controls

Erstellt von Golo Roden vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.705 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren
Vollqualifizierten Namen eines Controls

Hallo,

im Moment stehe ich ein wenig auf dem Schlauch ... wie kann ich zur Laufzeit den vollqualifizerten Namen eines Objektes herausbekommen? Angenommen, im Namespace ABC existiert ein Objekt DEF, das ein Objekt GHI instanziiert.

Wie erhalte ich über GHI zur Laufzeit den Wert ABC.DEF.GHI?

Danke,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Eisbär,

mittels Reflection das Control ermitteln, dann gibt es in der Tat ein Property 'FullName', das wäre genau das was Du suchst.

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Nein. Mit dieser Technik erhalte ich die Klassen(!)-Namen, nicht die Objektnamen :S ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

354 Beiträge seit 2004
vor 18 Jahren

Ich weiß jetzt nicht ganz genau was du willst:

Prinzipiell hast du den Type eines Objects. Dieser entspricht dem bezüglich der Property Fullname dem Namespace inkl. Namen der Klasse, eben den vollqualifizierten Namen.

Du willst ja anscheinend wissen wie das Object heißt inkl. Namespace? Versteh ich das richtig? Dann hol dir einfach aus dem Type des Objects den Namespace und häng den Namen des Objects an - wobei ich nicht weiß, was genau das bringen soll.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Eisbär,

jo, da kann ich mich meinem Vorredner nur anschließen. Ich kann das auch nicht nachvollziehen. Aber so wie nitronic sagt, dafür gibt es kein vorhandenes Property, das musst Du Dir selbst zusammensetzen...

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

S
8.746 Beiträge seit 2005
vor 18 Jahren

Macht doch Sinn: Man stelle vor, sich einen Dump aller Variablen einer Function zu tracen. Man denke auch nur an die "Locals"-Function des Debuggers. Die werden aber offenbar über den StackFrame des Debugger SDKs geholt. Ich vermute also, dass man via Reflection nicht an lokale Variablen rankommt. Man müßte also die Funktion des Debuggers-SDK dem Programm selbst verfügbar machen. Das Programm selbst kann nur im DEBUG-Modus laufen. Dass sowas möglich ist, zeigt AOP.NET.

Mittels ParameterInfo.Name kommt man zumindest an die formalen Parameternamen ran. Das ist doch schon was.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo zusammen,

nur mal der Klarheit wegen. Dann reden wir aber nicht über Objektnamen (Objekte haben keine Namen), sondern über Variablennamen.

herbivore

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Hallo,

so, habe es nun:

Control tempControl = control;
string fullyQualifiedObjectName = "";
do {
  fullyQualifiedObjectName = tempControl.Name + "." +
    fullyQualifiedObjectName;
  tempControl = tempControl.Parent;
}
while( tempControl != null );

// Cut the trailing dot.
fullyQualifiedObjectName = fullyQualifiedObjectName.Substring(0, fullyQualifiedObjectName.Length - 1);

Der Sinn liegt darin, dass über den so ermittelten String Daten aus einer Lokalisierungsdatenbank gelesen werden, um die Text-Eigenschaft eines Controls zu lokalisieren.

Viele Grüße,

der Eisbär

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Herbivore,


public class myObj
{

   public myObj()
   {
   }

   public string Objektname
   {
      get
      {
         return "Nur zum Herbivore ärgern!";
      }
   }

}

😉)))))))))

Bitte nur als Gag verstehen.

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”