在应用程序域中路由网络数据

时间:2013-11-07 20:55:06

标签: c# .net networking appdomain

我的应用程序位于多个单独的应用程序之上,每个应用程序都在自己的应用程序域中运行出现了需要2个不同的应用程序来利用端口80来服务某些网络流量。有没有办法捕获父域中的网络打开请求并管理网络流量以根据需要将数据传递到每个单独的域?他们是我应该考虑的替代架构吗?

1 个答案:

答案 0 :(得分:0)

您可以捕获父域上打开的请求,并使用继承MarshalByRefObject的类将其包装。可以轻松地将对此类的引用移动到另一个AppDomain。

请注意,您应该包装在AppDomains之间传递的任何类(方法参数,返回的结果,EventArgs等)。

例如:

class Connection : MarshalByRefObject
{
    event ReceivedDataEventHandler ReceivedData;

    void Send(byte[] b)
    {
        // ...
    }
}

class ReceivedDataEventArgs : MarshalByRefObject
{
    public string Data { get; }
}

delegate void ReceivedDataEventHandler(object sender, ReceivedDataEventArgs e);