代码之家  ›  专栏  ›  技术社区  ›  Scott

在第二个AppDomain中运行服务

  •  0
  • Scott  · 技术社区  · 12 年前

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

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

    我应该使用不同的设计吗?或者有一种简单的方法可以在单独的AppDomain中运行服务吗?

    谢谢 斯科特

    2 回复  |  直到 12 年前
        1
  •  0
  •   greenboxal    12 年前

    如果我正确理解你的问题,你需要使用像.Net Remoting这样的东西在应用程序域之间使用对象。

        2
  •  0
  •   Scott    12 年前

    解决了我的问题。我将类型标记为[Serializable],而不是从MarshalByRefObject派生它。一旦我弄清楚了这一点,一切似乎都开始好转了。

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

    谢谢

    斯科特