我正在使用RemotingServices.Marshal
andActivator.GetObject
在驻留在同一台计算机上的两个简单程序之间建立远程处理通道。
public class IpcInterface : MarshalByRefObject
{
public int number = -1;
public string text = "default";
public List<String> strings;
}
// A simplification
我已确认该频道存在并且可以进行通信,因为这两个程序都已成功更改number
并text
具有完全独特的值(已确认)。
所以我立即尝试对strings
.
在一个程序中,我调用了strings.Add("1")
. 我尝试阅读strings
第二个程序的内容。它是空的。更重要的是,计数是0
。我不知道为什么strings
继续有0
对象,就好像我从未添加过它们一样。同样的事情发生在 a Stack<T>
andDictionary<T, K>
上,我只是不能向它添加任何元素。为了确保引用类型一般不会发生什么奇怪的事情,我还尝试StringBuilder
在 IPC 接口类中放置一个,并且在两个程序中成功地维护了“状态”,从而改变了它的值。
问题:为什么没有添加字符串列表,解决方案是什么?
我希望有经验的人可以立即发现这个问题。我尝试用谷歌搜索类似的问题,但没有得到任何有用的结果。令人惊讶的是,我只有 1 个用于谷歌搜索“调试 .net 远程透明代理”的好链接。这也是我的第二个问题。如何调试透明代理对象?
- 所有对象都被正确实例化(没有 NullReferenceException;事实上,没有异常)。