小编bra*_*ave的帖子

AppDomain.DoCallBack()具有多种泛型类型问题

我对AppDomain.DoCallBack()和泛型类型有一个奇怪的问题:

static void InvokeIsolated() {
  AppDomain appDomain = AppDomain.CreateDomain("testDomain");
  appDomain.DoCallBack(MyDoCallBack<string, string>); <-- ArgumentNullException!
}

static void MyDoCallBack<T, T1>() {}
Run Code Online (Sandbox Code Playgroud)

我得到一个带有消息的argumentnullexpcetion:当泛型类型相同时,"value不能为null".

如果我将docallback更改为:

appDomain.DoCallBack(MyDoCallBack<string, int>); <-- OK!
Run Code Online (Sandbox Code Playgroud)

这意味着如果泛型类型不同,则没有问题.

有什么问题或者这是一个.net错误?

更新:如果使用泛型类型调用lambda不是变通方法:

static void Foo()
{
   InvokeIsolated<string, string>();
}

static void InvokeIsolated<T, T1>()
{
   AppDomain appDomain = AppDomain.CreateDomain("testDomain");
   appDomain.DoCallBack(() => MyDoCallBack<T, T1>()); //<--ArgumentNullException
}

static void MyDoCallBack<T, T1>() {}
Run Code Online (Sandbox Code Playgroud)

c# generics appdomain

5
推荐指数
1
解决办法
96
查看次数

标签 统计

appdomain ×1

c# ×1

generics ×1