C# 如何将实例传递给另一个appdomain?
我需要将实例传递给(而不是从)AppDomain。我已经看到了很多关于如何进行反向操作的信息(在域上调用create并在本地使用该对象),但我想传递的是我已经拥有的实例(不是我从域对象创建的实例),该实例是MarshallByRefObject,我想将它从我的主域传递到另一个域。 这可能吗C# 如何将实例传递给另一个appdomain?,c#,.net,appdomain,C#,.net,Appdomain,我需要将实例传递给(而不是从)AppDomain。我已经看到了很多关于如何进行反向操作的信息(在域上调用create并在本地使用该对象),但我想传递的是我已经拥有的实例(不是我从域对象创建的实例),该实例是MarshallByRefObject,我想将它从我的主域传递到另一个域。 这可能吗 var MyObject = GetAlreadyPopulatedObject(); AnotherDomain.MakeObjectVisible(MyObject); // this is
var MyObject = GetAlreadyPopulatedObject();
AnotherDomain.MakeObjectVisible(MyObject); // this is what i'm trying to do, make the instance i have available somewhere else
// And if it's possible, how would i access it from the other Domain? How can i find it?
我的情况是,我正在处理我创建的数据,我想将其传递给另一个appdomain中的插件进行操作,然后检索修改后的版本,我有点不知所措。最后我找到了一个替代方法(domain.SetData/domain.GetData)来跨域边界传递对象,我不确定这样做是否最干净/最简单/最快/推荐等,因此不要将自己标记为答案,除非过了一段时间我看不到其他答案。MBRO的要点是,其他appdomain中的代码使用代理,而不是真正的对象。如果这不是您想要的,那么您不应该使用MBRO并将其改为[Serializable]。我的项目也可以序列化,但我找不到如何跨域传递它们,我发现SetData和GetData介于两者之间,但我希望有更丰富的方法来处理它们