.NET XML シリアル化に問題があります。特定のタグなしで XML をデシリアライズし、このオブジェクトを XML にシリアライズすると、これらのタグの一部がスキップされます。パラメーターなしのコンストラクターは、これらのプロパティを既定値に設定し、getter と setter の両方を持ちます。
属性のみint
がスキップされ、String
シリアル化されます。
入力ファイル:
<FileList>
<File>
<FilePath>RE.msg</FilePath>
</File>
</FileList>
出力ファイル:
<FileList GUID="A13EDDDF-F55A-4540-A776-609245B92D83" Created="2012-08-23T09:46:30+03:00">
<File GUID="28C6E090-A3D5-4CD7-97A6-7A46F2F0DDF7" Created="2012-08-23T09:46:30+03:00">
<FilePath>RE.msg</FilePath>
<FileStamp>wjoeao1x.msg</FileStamp>
<StatusMessage>Created</StatusMessage>
</File>
</FileList>
パラメーターなしのコンストラクターはint
プロパティの値を設定しますStatus
が、シリアル化されません:
public CT_File()
{
Status = 1;
StatusMessage = "Created";
}
クラス定義。XSD スキーマから自動生成されます。
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
[System.SerializableAttribute()]
//[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CT_File : CT_Base {
private string filePathField;
private string descriptionField;
private string fileStampField;
private string kapprisIDField;
private int statusField;
private bool statusFieldSpecified;
private string statusMessageField;
private int errorCodeField;
private bool errorCodeFieldSpecified;
private string errorMessageField;
private CT_FileList attachmentsField;
private string originalIDField;
public CT_File()
{
Status = 1;
StatusMessage = "Created";
this.attachmentsField = new CT_FileList();
}
/// <remarks/>
public string FilePath {
get {
return this.filePathField;
}
set {
this.filePathField = value;
}
}
/// <remarks/>
public string Description {
get {
return this.descriptionField;
}
set {
this.descriptionField = value;
}
}
/// <remarks/>
public string FileStamp {
get {
return this.fileStampField;
}
set {
this.fileStampField = value;
}
}
/// <remarks/>
public string KapprisID {
get {
return this.kapprisIDField;
}
set {
this.kapprisIDField = value;
}
}
/// <remarks/>
public int Status {
get {
return this.statusField;
}
set {
this.statusField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool StatusSpecified {
get {
return this.statusFieldSpecified;
}
set {
this.statusFieldSpecified = value;
}
}
/// <remarks/>
public string StatusMessage {
get {
return this.statusMessageField;
}
set {
this.statusMessageField = value;
}
}
/// <remarks/>
public int ErrorCode {
get {
return this.errorCodeField;
}
set {
this.errorCodeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool ErrorCodeSpecified {
get {
return this.errorCodeFieldSpecified;
}
set {
this.errorCodeFieldSpecified = value;
}
}
/// <remarks/>
public string ErrorMessage {
get {
return this.errorMessageField;
}
set {
this.errorMessageField = value;
}
}
/// <remarks/>
public CT_FileList Attachments {
get {
return this.attachmentsField;
}
set {
this.attachmentsField = value;
}
}
/// <remarks/>
public string OriginalID {
get {
return this.originalIDField;
}
set {
this.originalIDField = value;
}
}
}