我有一个应用程序位于多个单独的应用程序之上,每个应用程序都在自己的应用程序域中运行。需要 2 个不同的应用程序来使用端口 80 来服务一些 Web 流量。有没有办法在父域中捕获网络开放请求并管理网络流量以根据需要将数据传递到每个单独的域?他们是我应该考虑的替代架构吗?
问问题
66 次
1 回答
0
您可以在父域上捕获打开的请求,并使用继承 MarshalByRefObject 的类对其进行包装。对此类的引用可以轻松移动到另一个 AppDomain。
请注意,您应该包装在 AppDomain 之间传递的任何类(方法参数、返回的结果、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);
于 2013-11-27T07:58:22.997 回答