gpt4 book ai didi

c# - 具有多泛型问题的 AppDomain.DoCallBack()

转载 作者:太空狗 更新时间:2023-10-29 23:45:07 25 4
gpt4 key购买 nike

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

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

static void MyDoCallBack<T, T1>() {}

我收到一个带有消息的 argumentnullexpcetion:“value cannot be null”当泛型类型相同时。

如果我将 doccallback 更改为:

appDomain.DoCallBack(MyDoCallBack<string, int>); <-- OK!

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

有什么问题还是 .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>() {}

最佳答案

这是 .NET Remoting 基础结构中的错误。这是 .NET 内部代码中的崩溃。

我没有好的解决方法。您可以使用表达式树编译非通用包装函数。每组泛型类型参数都需要一个这样的 lambda。

关于c# - 具有多泛型问题的 AppDomain.DoCallBack(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com