相关疑难解决方法(0)

使用DataContractSerializer时设置属性的初始值

如果我正在序列化并稍后反序列化类,DataContractSerializer我如何控制未序列化的属性的初始值?

考虑下面的Person课程.它的数据协定设置为序列化FirstNameLastName属性,但不是IsNew属性.我想IsNew初始化为TRUE是否将新Person实例化为新实例或从文件反序列化.

这很容易通过构造函数来完成,但据我所知,它DataContractSerializer不会调用构造函数,因为它们可能需要参数.

[DataContract(Name="Person")]
public class Person 
{
    [DataMember(Name="FirstName")]
    public string FirstName { get; set; }

    [DataMember(Name = "LastName")]
    public string LastName { get; set; }

    public bool IsNew { get; set; }

    public Person(string first, string last)
    {
        this.FirstName = first;
        this.LastName = last;
        this.IsNew = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# initialization default-value datacontractserializer

10
推荐指数
2
解决办法
2356
查看次数