Laden...

GUID von einem Interface?

Erstellt von steffen_dec vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.695 Views
S
steffen_dec Themenstarter:in
322 Beiträge seit 2007
vor 16 Jahren
GUID von einem Interface?

Hallo,

ich brauche für den Aufruf einer Funktion die GUID von einem Interface, diese auch noch als referenz (mit ref)...

so habe ich bereits ausprobiert:


Guid temp = (Guid)IOPCGroupStateMgt;
//OpcRcw.Da.IOPCGroupStateMgt" ist ein(e) "Typ", wird aber wie ein(e) "Variable" verwendet.

Guid temp = GetType(IOPCGroupStateMgt).GUID;
//OpcRcw.Da.IOPCGroupStateMgt" ist ein(e) "Typ", wird aber wie ein(e) "Variable" verwendet.

IOPCGroupStateMgt m_group2;
Guid temp = m_group2.GetType().GUID;
// In dem Fall wird eine NullReferenceException ausgelöst, mit new lässt es sich auch nicht instanzieren.

ich hab das ganze als Beispiel in C++ (6.0) und da ist es so drin wie die zweite Methode...

hat jemand eine Idee?

Danke im Voraus
Steffen

D
500 Beiträge seit 2007
vor 16 Jahren

Hallo,

Ich bin nicht so in C++ bewandert, aber es scheint bei Dir etwas durcheinander zu gehen. Du kannst mich gerne korrigieren.

In C# würde ich folgendes vorschlagen:
Wenn IOPCGroupStateMgt ein Interface ist, dann kannst Du entweder


Guid temp = IOPCGroupStateMgt.GUID;

verwenden. Das setzt aber voraus, dass Dein Interface ein Property GUID, welches vom Typen Guid ist, enthält und auch eine Instanz hinter dem Interface steckt.

Mit der Funktion GetType() kannst Du folgedermaßen arbeiten:


Type guidType = IOPCGroupStateMgt.GUID.GetType();

Alles andere macht bei Dir keinen Sinn.

Gruß, DaMoe

S
steffen_dec Themenstarter:in
322 Beiträge seit 2007
vor 16 Jahren

Hallo,

danke für deine Bemühung,
ich hab es nun rausgefunden:

Guid temp = typeof(IOPCGroupStateMgt).GUID;

Gruß
Steffen

D
500 Beiträge seit 2007
vor 16 Jahren

Hallo!

Kannte ich selber bisher auch nicht. So lernt man wieder was dazu.

Allerdings ist typeof(IOPCGroupStateMgt).GUID nichts anderes als wenn Du Type.GetType("IOPCGroupStateMgt").GUID gesagt hättest, mit dem Unterschied, dass GetType() den Typen nur als string annimmt.

Gruß, DaMoe