在AppDomain中A我有一个o类型的对象T.T既不是也不Serializable是源于MarshalByRefObject.类型T由插件主机提供,我无法控制.
我想创建一个AppDomain B并将代理传递o给一个方法B,但是我很难过:如何创建代理?
该方法B应该能够调用方法o和读取属性等.这些方法的结果必须以类似的方式代理.
小智 5
我建议您创建一个正确的代理对象,该对象实现与您尝试代理的对象相同的接口,并且还继承自MarshalByRefObject.然后,您远程代理对象.在服务器端,代理将委托给您的对象.
根据您的要求,服务器对象将包含您的对象作为静态(所有客户端看到相同的对象)或非静态(每个客户端获取一个新的副本).
对于静态成员,您需要在服务器中创建代理并使用您的对象初始化它,或者第一个分配的代理(当第一个客户端连接时)创建您的对象并自行初始化.我用过前者.
当然不要忘记租约.