[CSharp.net] AW: [CSharp.net] RE: [CSharp.net] Reflection über Interface

Mansur Esmann [OM] csharp.net at glengamoi.com
Mon, 29 Mar 2004 13:34:56 +0200


Dank!
aber irgendwie will es nicht so richtig klappen ....

		private void toolBar1_ButtonClick(...)
		{
			IFrame nform = form as IFrame;

			Type t = nform.GetType();

			MethodInfo mi = t.GetMethod("Save");
			if(mi != null)
				mi.Invoke(nform, null);
		}

IFrame ist mein Interface ...
Ich bekomme aber nicht das Interface, sondern das Objekt dahinter ..... das Childform.
Eine Methode Save finde ich dann auch nicht, obwohl die ja im Interface drinnen ist.

Liege ich da jetzt irgendwie völlig daneben?

Gruß Mansur


>
> Hallo,
> Das hier sollte helfen:
>
> object o;
> //o, beinhaltet das objekt, dass das interface supported
>
> //ermittle die gesuchte Methode eines Objekts
> Type t = o.GetType();
>
> MethodInfo mi = t.GetMethod("MeineMethode");
> if(mi!=null)
> 	mi.Invoke(o,null)
>
> alternativ, wenn das Interface und die Methode bekannt ist:
>
> MyInterface myInt = o as MyInterface;
> if(myInt != null)
> 	myInt.MyMethod();
>
> lG
> Peter
>
> > -----Original Message-----
> > From: csharp.net-admin@glengamoi.com
> > [mailto:csharp.net-admin@glengamoi.com] On Behalf Of Mansur
> > Esmann [OM]
> > Sent: Monday, March 29, 2004 9:41 AM
> > To: csharp.net@glengamoi.com
> > Subject: [CSharp.net] Reflection über Interface
> >
> > Hallo,
> >
> > ich habe in einem Interface eine Methode:
> > public interface IFrame{
> > 	void Save();
> > }
> >
> > In einem Childformular implementiere ich die Methode:
> > void IFrame.Save()
> > {
> > 	MessageBox.Show("speichern....");
> > }
> >
> >
> > Jetzt will ich über reflection:
> > a.) Rausfinden welche Methoden zur Verfügung stehen
> > b.) Falls gefunden die Methode ausführen
> >
> > Also a.) War kein Problem ....
> > Aber b.) das kriege ich nicht hin ....
> >
> > InvokeMethode .... damit meine ich kann man das machen ....
> > Ein googeln hat mir aber kein verständliches Beispiel
> > gebracht, wo das mit einem Interface gemacht wird ....
> >
> > Hat da jemand ein Beispiel und ggf. ein paar Zeilen Erläuterung dazu?
> >
> > Gruß Mansur
> >
> > _______________________________________________
> > CSharp.net Mailingliste, Postings senden an:
> > CSharp.net@glengamoi.com
> > An-/Abmeldung und Suchfunktion unter:
> > http://www.glengamoi.com/mailman/listinfo/csharp.net
> >
>
> _______________________________________________
> CSharp.net Mailingliste, Postings senden an:
> CSharp.net@glengamoi.com
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/csharp.net