としてListオブジェクトによる方法、のparams、...ボーク私は方法のため、およびオブジェクト/クラスの文字列データによって、リスト内のオブジェクトからメソッドを呼び出したい文字列
class MyClass{
List<Element> elements = new List<Element>();
public MyClass(){
elements[0] = new Element();
//elements[0].MyMethod();
InvokeMet(this, "MyMethod", "elements[0]")
}
}
class Fun()
{
public static void InvokeMet(object obj, string method, string instance)
{
string[] par = {};
string[] instance_array = instance.Split(new char[] { '[', ']' });
object instanceObjectList = obj.GetType().GetField(instance_array[0]).GetValue(obj);
object instanceObject = ((List<Element>)instanceObjectList)[Convert.ToInt32(instance_array[1])];
MethodInfo mi = instanceObject.GetType().GetMethod(method);
mi.Invoke(instanceObject, par);
}
}
それが動作しているが、私リストのタイプを動的にしたい、例えば。オブジェクト
object instanceObject = ((List<instanceObjectList.GetType().GetGenericArguments()[0]>)instanceObjectList);
または多分私がそれを行うことができますどのように文字列から
String cl = "Element";
object instanceObject = ((List<typeFromString(cl)>)instanceObjectList);
を取得することができますか?から取得 それはまったく違うことがありますか?
このコードが発生しやすい潜在的に遅いとエラーになります。だから私はここに大きな写真は何ですか、尋ねる必要がありますか?なぜあなたはこれをしたいのですか?このタイプのコールを貴重なものにしているのは何ですか? – Enigmativity
プログラムのコンセプトでは、ソケット経由でtxt msgを送信することでメソッドを呼びたいと思っています:インスタンス、メソッド、パラメータを送信したいと思います:そして、このようにsthを呼び出します: "instance"。インスタンスはリストの要素になる可能性があります。 – hades