我想从远程对象返回一个私有字段,但我得到了异常:
RemotingException被抓住了 远程处理在类型'DBGeneral'上找不到字段'connectionString'。
执行GetField()方法时,我得到Private字段的FieldInfo对象。
FieldInfo field = o.GetType().GetField("connectionString", BindingFlags.Instance | BindingFlags.NonPublic);
但是当它执行GetValue()时,抛出了RemotingException。
field.GetValue(o);
如果我关闭远程处理并反映本地私有connectionString字段,我会将字符串返回给我。
答案 0 :(得分:1)
这对你如何进行远程处理做了一些假设,可能不对,但会解释你的错误。
当你的对象通过远程发送时,它必须被序列化。序列化程序只能“看到”公共属性,因此私有属性不会通过网络发送。
修改:基于评论
您至少有两个选项:
简单的一点是公开财产。
更多的工作是从使用远程处理切换到使用WCF。然后你可以像这样标记私有变量:
[DataMember(Name="SomeValue")]
private int m_SomeValue;