这是我的问题。如果我这样调用我的回调:
clients[computerID].PrintLabelCallback(label);
通道故障,我在客户端收到 CommunicationFault 异常。调用是一种方式,不会导致服务器端出现问题。
但是,如果我这样称呼它:
label.EntryLocation = null;
label.EntryUser = null;
label.ResultLine = null;
label.Printer = null;
label.Type = null;
clients[computerID].PrintLabelCallback(label);
其中 EntryLocation、EntryUser 等是我定义的类。我不必取消基本类型,如String
, int
。那些穿越电线的人没有发生任何事故。似乎双方都使用了相同的类型,所以我不确定这是失败的地方。
什么可能导致这种情况?我将如何解决它?
编辑:这是我的班级和相关领域的定义。
[DataContract(IsReference = true), JsonObject(IsReference = false), Serializable]
public partial class Label : Interfaces.IRQSObject
{
/// <summary>
/// The location where the Label was created.
/// </summary>
[DataMember(EmitDefaultValue = false)]
public virtual Location EntryLocation { get; set; }
/// <summary>
/// The user that Generated the Label
/// </summary>
[DataMember(EmitDefaultValue = false)]
public virtual User EntryUser { get; set; }
/// <summary>
/// The printer that this label will be printed out at
/// </summary>
[DataMember(EmitDefaultValue = false)]
public virtual LabelPrinter Printer { get; set; }
/// <summary>
/// The Type of the label
/// </summary>
[DataMember(EmitDefaultValue = false)]
public virtual LabelType Type { get; set; }
[DataMember(EmitDefaultValue = false)]
public virtual ResultLine ResultLine { get; set; }
}