Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将实例传递给另一个appdomain?_C#_.net_Appdomain - Fatal编程技术网

C# 如何将实例传递给另一个appdomain?

C# 如何将实例传递给另一个appdomain?,c#,.net,appdomain,C#,.net,Appdomain,我需要将实例传递给(而不是从)AppDomain。我已经看到了很多关于如何进行反向操作的信息(在域上调用create并在本地使用该对象),但我想传递的是我已经拥有的实例(不是我从域对象创建的实例),该实例是MarshallByRefObject,我想将它从我的主域传递到另一个域。 这可能吗 var MyObject = GetAlreadyPopulatedObject(); AnotherDomain.MakeObjectVisible(MyObject); // this is

我需要将实例传递给(而不是从)AppDomain。我已经看到了很多关于如何进行反向操作的信息(在域上调用create并在本地使用该对象),但我想传递的是我已经拥有的实例(不是我从域对象创建的实例),该实例是MarshallByRefObject,我想将它从我的主域传递到另一个域。 这可能吗

   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介于两者之间,但我希望有更丰富的方法来处理它们