tôi đã là một vấn đề xa lạ với AppDomain.DoCallBack() và các loại chung:AppDomain.DoCallBack() với vấn đề loại đa generic
static void InvokeIsolated() {
AppDomain appDomain = AppDomain.CreateDomain("testDomain");
appDomain.DoCallBack(MyDoCallBack<string, string>); <-- ArgumentNullException!
}
static void MyDoCallBack<T, T1>() {}
tôi nhận được một argumentnullexpcetion với thông điệp: "giá trị không thể được null" khi các loại chung là giống nhau.
nếu tôi thay đổi docallback này:
appDomain.DoCallBack(MyDoCallBack<string, int>); <-- OK!
đó có nghĩa là nếu các loại generic là khác nhau, không có vấn đề.
lỗi hoặc lỗi này là gì .net lỗi ??
UPDATE: lambda không phải là một cách giải quyết nếu gọi với kiểu generic:
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>() {}
Bạn nhận được 'ArgumentNullException' ở đâu? –
Để giúp bạn, chúng tôi cần mã cho DoCallBack() –
tôi nhận được ArgumentNullException trên appDomain.DoCallBack (DoCallBack); –
brainwave