0

我有一个基类

[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 DataContact,我的服务引用只会继承 DataMembers,而不是构造函数。有没有办法我仍然可以做到这一点,自动分配父变量的默认值?就像是

this.RequestType = StationHouseWebServices.RequestType.Login;
4

1 回答 1

1

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

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

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

于 2013-05-16T08:32:32.267 回答