gpt4 book ai didi

.net - AppDomain.CreateInstanceAndUnwrap 失败,返回 "Type is not marked as serializable"

转载 作者:行者123 更新时间:2023-12-01 01:10:39 27 4
gpt4 key购买 nike

我有这个代码(简化)

internal class Worker : MarshalByRefObject {
public void DoWork() {
}
}

internal class WorkerInvoker {
public void InvokeWorker() {
var newDomain = AppDomain.CreateDomain("Work", null, new AppDomainSetup { ApplicationBase = AppDomain.CurrentDomain.BaseDirectory, PrivateBinPath = AppDomain.CurrentDomain.RelativeSearchPath });
try {
FAIL HERE> var worker = (Worker)newDomain.CreateInstanceAndUnwrap(typeof(Worker).Assembly.FullName, typeof(Worker).FullName);
worker.DoWork();
}
finally {
if (newDomain != null)
AppDomain.Unload(newDomain);
}
}
}

但是指示的行 (CreateInstanceAndUnwrap) 失败了

Type 'Castle.MicroKernel.Lifestyle.Scoped.CallContextLifetimeScope' in assembly 'Castle.Windsor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' is not marked as serializable.

这是为什么?我确实在应用程序中使用了 CaSTLe Windsor,但我没有尝试在应用程序域之间传递 CallContextLifetimeScope 实例。

最佳答案

此问题现已在 Windsor 3.1 中修复。

当跨 AppDomains 使用范围生活方式时会发生这种情况。一些测试运行器(如 MsTest)或其他库(如 Reporting Services)正在另一个应用程序域中做一些事情,这就是你看到这一点的原因。

关于.net - AppDomain.CreateInstanceAndUnwrap 失败,返回 "Type is not marked as serializable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9198066/

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