Как передать ссылки в качестве параметров метода через домены приложений?

Я пытался заставить следующий код работать (все определено в той же сборке):

namespace SomeApp{

public class A : MarshalByRefObject
{
   public byte[] GetSomeData() { // }
}

public class B : MarshalByRefObject
{
   private A remoteObj;

   public void SetA(A remoteObj)
   {
      this.remoteObj = remoteObj;
   }
}

public class C
{
   A someA = new A();
   public void Init()
   {
       AppDomain domain = AppDomain.CreateDomain("ChildDomain");
       string currentAssemblyPath = Assembly.GetExecutingAssembly().Location;
       B remoteB = domain.domain.CreateInstanceFromAndUnwrap(currentAssemblyPath,"SomeApp.B") as B;
       remoteB.SetA(someA); // this throws an ArgumentException "Object type cannot be converted to target type."
   }
}

}

То, что я пытаюсь сделать, это передать ссылку на экземпляр «A», созданный в первом AppDomain, в дочерний домен и заставить дочерний домен выполнить метод в первом домене. В какой-то момент кода «B» я собираюсь вызвать «remoteObj.GetSomeData ()». Это должно быть сделано, потому что метод 'byte []' из метода 'GetSomeData' должен быть 'вычислен' в первом домене приложения. Что я должен сделать, чтобы избежать исключения, или что я могу сделать, чтобы достичь того же результата?

Ответы на вопрос(3)

Ваш ответ на вопрос