在数据联系人中设置父变量的默认值

本文关键字:变量 默认值 设置 数据 联系人 | 更新日期: 2023-09-27 18:13:43

我有一个基类

[DataContract]
public class BaseRequest
{
    [DataMember]
    public Guid Key;
    [DataMember]
    public RequestType RequestType;

}

有很多类将继承这个,我希望他们设置他们继承的RequestType Enum自动

[DataContract]
public class LoginRequest : BaseRequest
{
    [DataMember]
    public void LoginRequest()
    {
        this.RequestType = StationHouseWebServices.RequestType.Login;
    }
    [DataMember]
    public string Username;
    [DataMember]
    public string Password;
}

但是由于这是一个WCF数据联系人,我的服务引用将只携带数据成员,而不是构造函数。有一种方法,我仍然可以做到这一点,有一个默认值为父变量自动分配?就像

this.RequestType = StationHouseWebServices.RequestType.Login;

在数据联系人中设置父变量的默认值

因为构造函数不会被调用,所以WCF为您提供了一种方便的方式来运行通常在构造函数中执行的任何设置代码。这叫做OnDeserializedAttribute

[OnDeserializedAttribute]
private void RunThisCode(StreamingContext context)
{ 
    ...
}

请看这里:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx