【问题标题】:C# generated xsd object serialization of datetimeC#生成日期时间的xsd对象序列化
【发布时间】:2011-12-16 07:38:05
【问题描述】:

我有一个通过运行 xsd.exe 生成的对象,该对象具有以下属性和支持字段:

private System.DateTime deliveryDateField;

/// <remarks/>
public System.DateTime DeliveryDate 
{
    get 
    {
        return this.deliveryDateField;
    }
    set 
    {
        this.deliveryDateField = value;
    }
}

生成自:

<xs:element name="DeliveryDate" type="xs:dateTime" minOccurs="0"/>

我正在尝试使用:

var t = new Transaction();
t.DeliveryDate = new DateTime(2011,11,11);
var xs = new XmlSerializer(t.GetType());

string outString;

using (var ms = new MemoryStream())
{
    xs.Serialize(ms, t);
    ms.Position = 0;
    using (var sr = new StreamReader(ms))
    {
       outString = sr.ReadToEnd();
    }
}
return outString;

无论我设置什么值,它都会在序列化过程中丢失,而其他元素都很好。我需要做什么才能正确序列化?

谢谢

【问题讨论】:

    标签: c# xml serialization xsd xml-serialization


    【解决方案1】:

    您的 Transaction 类上可能还有一个名为 DeliveryDateSpecified 的属性?这是因为您的 DeliveryDate 不是强制性的。如果您将此设置为 true,您的 DeliveryDate 也将被序列化。

    【讨论】:

    • 啊谢谢你,我不知道我需要这样做,但很有意义
    • XmlSerializer 使用指定的属性来确定是否应序列化不可为空的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多