【发布时间】:2012-04-16 11:01:12
【问题描述】:
我在 Web 服务层的 WCF 中有一个特殊问题。
当我在 WCF 中实例化我的类的私有成员 (_Wagon)(此实例不为空)时,几秒钟后,它变为空。
我一直在尝试诊断问题,但目前没有结果。
所以我求助于你们来帮助我解决这个问题。
谢谢。
因此有我的代码:
[DataContract]
public class RemoteWagon
{
private readonly IWagon _Wagon;
public RemoteWagon(IWagon Wagon)
{
_Wagon = Wagon; //_Wagon isn't null here
}
~RemoteWagon()
{
Trace.WriteLine("Do nothing");
}
[DataMember]
public RemoteBreakpoint Breakpoint
{
set
{
if (value == null)
{
_Wagon.Breakpoint = null; //_Wagon member is NULL...
}
else
{
//... useless code in this context.
}
}
}
}
【问题讨论】:
-
所有的实例化和使用
RemoteWagon类是发生在单个 WCF 调用的上下文中,还是跨多个调用? -
在您检查的两次之间,
RemoteWagon的实例是否已通过线路从客户端发送到服务器?基本上,WCF 将仅序列化一个类的公共形状——所有标记有[DataMember]属性的东西。其他任何东西都将不会通过网络传输,因此在通信链路的另一端将不可用。
标签: c# wcf web-services private datacontract