我使用RemotingServices.Marshal
和Activator.GetObject
来建立驻留在同一台计算机上的两个简单程序之间的远程通道。.NET Remoting,为什么不是一个远程的列表?
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
对象,就像我从来没有添加过它们一样。同样的事情发生在Stack<T>
和Dictionary<T, K>
,我只是不能添加任何元素。为了确保一般的参考类型不会出现奇怪现象,我也尝试在IPC接口类中添加一个StringBuilder
,并且在两个程序中都成功维护'状态',以更改其值。
问题:为什么不添加字符串列表,以及解决方案是什么?
我希望有经验的人可以马上发现这个问题。我尝试了谷歌类似的问题,但我没有得到任何有用的结果。令人惊讶的是,我只有1个好的链接,用于搜索“调试.net远程处理透明代理”。这也是我的第二个问题。我如何调试透明代理对象?
- 所有对象都正确实例化(没有NullReferenceException;实际上,没有例外)。
圣***非常感谢 – Jason