4
のメソッドを呼び出すすべての人、リフレクション:ジェネリックパラメータ
リフレクションでメソッドを呼び出すときに問題があります。
方法記号は、私は2番目のオーバーロードを使用したい
public T Create<T, TK>(TK parent, T newItem, bool updateStatistics = true, bool silent = false)
where T : class
where TK : class;
public T Create<T, TK>(TK parent, string newName, Language language = null, bool updateStatistics = true, bool silent = false)
where T : class
where TK : class;
です。
私のコードは、項目がクラスである
typeof(ObjectType).GetMethod("Create")
.MakeGenericMethod(new Type[] { typeof(Item), typeof(TKparent) })
.Invoke(_objectInstance, new object[] { parent, name, _language, true, false });
で、TKparentは型変数であると親がTKparentインスタンスです。
System.Reflection.AmbiguousMatchExceptionが発生します。
私は問題がジェネリック医薬品に関連していると思う
私も試してみましたこの:
typeof(ObjectType).GetMethod("Create", new Type[] { typeof(TKparent), typeof(string), typeof(Globalization.Language), typeof(bool), typeof(bool) })
.MakeGenericMethod(new Type[] { typeof(Item), typeof(Tparent) })
.Invoke(_objectInstance, new object[] { parent, name, _language, true, false });
が、この場合には、私はSystem.NullReferenceException(見つかりませ法)
でき、誰の助けを得る
これで、私は怒っている! は、問題は、あなたも、あなたが望むオーバーロード、それを伝える前GetMethod
はそのたてがみと
複数方法を見つけることであるあなたに