3
我有此代碼(簡化的)AppDomain.CreateInstanceAndUnwrap失敗, 「類型沒有標記爲可序列」
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)失敗,
類型「Castle.MicroKernel .Lifestyle.Scoped.CallContextLifetimeScope'in assembly'Castle.Windsor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'未標記爲可序列化。
這是爲什麼?我在應用程序中使用了Castle Windsor,但並未嘗試在應用程序域之間傳遞CallContextLifetimeScope實例。
我有這個相同的錯誤試圖運行與涉及Castle Windsor 3.0的mspec集成測試。我正在使用BeginScope()。我沒有使用任何AppDomain的東西(我懷疑mspec可能)。奇怪的R#Mspec亞軍很好。 – 2012-02-16 21:01:34
@AlanChristensen,ReSharper亞軍並沒有爲每個測試程序集建立一個新的AppDomain。你能解決問題嗎? – 2012-04-24 15:30:55