Xamarin/Mono を使用した Android (およびそれ以降の iOS) 用アプリの開発。通常、このコードを使用して非静的ジェネリック メソッドを呼び出すと、うまく機能します。
serverService.GetCustomListObject<T> (firstRequestInLine,
null,
onGetCustomListObjectFromThread<T>,
onGetCustomListObjectFromThreadError);
コールバックは次のように定義されます。
private void onGetCustomListObjectFromThread<T> (List<T> list,
RequestStateGen<T>.SuccessfullDelegateType successDel
{ ... }
と
private void onGetCustomListObjectFromThreadError (String error,
WebRequest failedRequest)
{ ... }
ただし、動的に設定されているGetCustomListObject<t>
場所を呼び出す必要があります。t
私はジェネリックにはまったく慣れていませんが、他の例から次のコードを試してみましたが、成功しませんでした:
typeof(ServerService).GetMethod ("GetCustomListObject").MakeGenericMethod (t).Invoke (serverService, new object[] {
firstRequestInLine,
null,
typeof(LocalServerService).GetMethod ("onGetCustomListObjectFromThread").MakeGenericMethod (t),
typeof(LocalServerService).GetMethod ("onGetCustomListObjectFromThreadError")
});
ここにLocalServerService
ある私のすべての例が含まれているクラスはどこserverService
ですかServerService
次のエラーが表示されます。
Error: Ambiguous matching in method resolution
編集: ServerService の GetCustomListObject:
public void GetCustomListObject<T> (WebRequest request,
RequestStateGen<T>.SuccessfullDelegateType successDelegate,
RequestStateGen<T>.InternalSuccessDelegateType internalSuccessDelegate,
RequestStateGen<T>.ErrorDelegateType errorDelegate)