私は自分のクラスを作成するために使用したXSDを持っています。 XML出力を取得すると、すべてのdatetimeデータ型はシリアル化されません。私はシリアライズ時に何のエラーもありません。私はサンプルのShipDateを使いました。私はスキーマツールがプロセスに影響を与えるいくつかのプロパティを追加しているかどうかわかりません。たとえば、ShipDateSpecifiedはXMLIgnoreAttributeです。事前にC#シリアライズでデータ型datetimeをシリアル化せず、文字列のみ
おかげ
C#の
shipHdr.TradingPartnerId = "000ALLTESTID";
shipHdr.ShipmentIdentification = "321654987";
shipHdr.ShipDate = Convert.ToDateTime("2016-03-23");
shipHdr.CarrierProNumber = "895934589485948353";
shipHdr.AppointmentNumber = "24601";
出荷クラス
private System.DateTime shipDateField;
private bool shipDateFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(DataType="date")]
public System.DateTime ShipDate {
get {
return this.shipDateField;
}
set {
this.shipDateField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool ShipDateSpecified {
get {
return this.shipDateFieldSpecified;
}
set {
this.shipDateFieldSpecified = value;
}
}
XML出力
<ShipmentHeader>
<TradingPartnerId>000ALLTESTID</TradingPartnerId>
<ShipmentIdentification>321654987</ShipmentIdentification>
<CarrierProNumber>895934589485948353</CarrierProNumber>
<AppointmentNumber>24601</AppointmentNumber>
</ShipmentHeader>
関連文書については、[XmlSerializerをクラス:生成されたXMLをコントロール](https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)と探し* propertyName指定*。 – dbc
まずはおかげさまで、これは正常な動作ですか、を指定しましたか? –
daniel2078
これはデフォルトの 'XmlSerializer'動作ですが、私の意見ではクラスを汚染していません。 null可能な 'DateTime? '型を許可するのは良いでしょうが、シリアライザに' null'値を書くのか、要素全体を省略するのかを伝える方法が必要です。 –