我想从我的WCF
( C#
) 服务向我的客户 ( WPF
) 发送以下课程:
[DataContract]
public class OutputAvailableEventArgs
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Message { get; private set; }
[DataMember]
public bool IsError { get; private set; }
public OutputAvailableEventArgs(int id) : this(id, false, "") { }
public OutputAvailableEventArgs(int id, string output) : this(id, false, output) { }
public OutputAvailableEventArgs(int id, bool isError, string output)
{
ID = id;
IsError = isError;
Message = output;
}
}
服务使用它如下:
var channel = OperationContext.Current.GetCallbackChannel<IClientCallback>();
channel.OutputAvailable(new OutputAvailableEventArgs(1, false, "some message"));
在客户端,成员获得他们的默认值。
我尝试用IsRequired
属性标记它们,但现在OutputAvailable
没有调用 at 客户端。服务端的代码似乎运行顺利(我没有注意到调试器有任何东西)。
如何在保持成员价值观的同时转移DataContract
课程?
(我看到了建议使用的解决方案,但我不需要一个默认的构造函数。)WCF
OnSerialized
OnDeserialized