【发布时间】:2016-06-09 16:49:32
【问题描述】:
这个问题的范围相当简单,归结为以下设置:
public class B : MarshalByRefObject {
public A a;
public class A : MarshalByRefObject {
internal int c;
public int d;
}
}
我在一个 AppDomain 中有一个 B 实例,并在另一个 appdomain 中引用了 A。但是,我无法通过调用 B.a.c 从 B 引用 c;如果我这样做了,我会收到一个远程处理异常“远程处理在类型 A 上找不到字段 c”。不过,我可以通过调用 B.a.d 来访问 d。有没有办法在不诉诸反射的情况下获得 c,或者这仅仅是使用 AppDomains 的结果?
有趣的是,当我在 Mono 4.2.3 中运行代码时,我没有遇到任何异常。我只有在 Windows 上才有问题,可能是由于 CAS。
【问题讨论】: