0

我有一个对象,我将其实例化到它自己的 AppDomain 中。这样做的主要原因是它调用了我无法控制的代码(第三方 dll),如果我需要中止线程,我可以这样做,然后销毁 AppDomain 以确保不会发生任何奇怪的事情。这部分工作正常。

但是,此对象还具有对我控制的 ServiceReference 的引用。由于服务引用位于第二个 AppDomain 的对象中,因此我收到了序列化异常,因为该服务未标记为可序列化。服务引用只是 Visual Studio 为我生成的代理,我不确定解决此问题的正确方法。

我应该使用不同的设计,还是有一种简单的方法可以从单独的 AppDomain 中运行服务?

谢谢,斯科特

4

2 回答 2

0

如果我正确理解了您的问题,您需要使用 .Net Remoting 之类的东西在 appdomains 之间使用对象。

于 2013-02-16T22:25:08.443 回答
0

想通了我的问题。我将我的类型标记为 [Serializable],而不是从 MarshalByRefObject 派生。一旦我弄清楚这一点,一切似乎都开始正常工作。

然而,现在我使用这个新模型有几个 CPU 周期,我对它不满意,正在寻找另一种方法。稍后我将发布一个单独的“设计”问题。

谢谢,

斯科特

于 2013-02-18T22:59:12.217 回答