Hallo,
beigef�gte Methode erh�lt von einer toolbar einen aufruf und soll dann anhand des
Button.Tag -
Textes pr�fen ob eine gegebene Schnittstelle diese Methode unterst�tzt und wenn ja
soll diese
ausgef�hrt werden:
private void toolBar1_ButtonClick(object sender,
System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
object[] parametersToPass=null;
object member = null;
IFrame nform = form as IFrame;
Type t = nform.GetType();
TypeFilter filter = new TypeFilter(IPluginFilter);
Type[] plugins = t.FindInterfaces(filter, "OM.Namespace");
for(int i = 0; i < plugins.Length; i++)
{
MethodInfo mi =
plugins[i].GetMethod(e.Button.Tag.ToString());
if(mi != null)
{
ParameterInfo[] parameters =
mi.GetParameters();
for (int j = 0; j < parameters.Length; j++)
{
member =
t.GetMember(parameters[j].Name);
parametersToPass[j] = member;
}
mi.Invoke(nform, parametersToPass);
}
else
{
MessageBox.Show("Funktion wird nicht
unterst�tzt!");
}
}
}
Jetzt kann es aber sein, da� die aufzurufende Methode �bergabewerte erwartet. Ich
dachte mir mach es
einfach ..... Das Objekt nform muss die zu �bergebenden Objekte mit exakt dem selben
Namen f�hren,
wie sie auch in der aufzurufenden Methode vorgesehen sind:
Also:
Interface:
Save(string DeinName)
dann muss nform einen public string DeinName="Mansur" haben.
somit kann ich:
member = t.GetMember(parameters[j].Name);
... machen.
So meine Frage:
als member erhalte ich ja "nur" eine MemberInfo ....
Ich m�chte aber den member selbst haben um ihn dann:
parametersToPass[j] = ..... Hier der member selbst ...
... einf�gen zu k�nnen.
Ich halte das deswegen f�r gut, weil wenn ich die Methode Save(string DeinName)
implementieren will,
sehe ich in der selben klasse nach ... aha "string DeinName" .... dann schreibe ich
einfach noch:
public string DeinName="Mansur" und schon wei� ich das es implementiert ist und alle
Parameter daf�r
da sind ...
Also: Wie komme ich an das "Objekt" member ran?
Mansur
_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net