使用 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>
wheret
动态设置。我对泛型很陌生,但尝试了其他示例中的以下代码但没有成功:
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)