のない私には、以下のクラスの断片を持っている:C#XMLシリアル化ラッパー
public class varString
{
public string KeyWord;
public string Value;
public static implicit operator string(varString v)
{
return v == null ? null : (string)v.Value;
}
}
キーワードはnullにすることが許可されています。
XMLにシリアライズするとキーワードがnullのとき、私は次のような出力が得られます。
<varString>
<Value>value goes here</Value>
</varString>
は私が出力するXMLシリアライザを取得するにはどうすればよい場合は、次のキーワードがnullの場合のみ?:
<varString>value goes here</varString>
キーワードがnullでない場合、私はまだ出力に次のようにそれが欲しい:
<varString>
<!-- Can either be <Value></Value or just straight text -->
<KeyWord>KeyWord goes here</KeyWord>
<varString>
このケースを処理して、孤立した文字列をnull KeyWordのvarStringに変換するために、deserializeイベントを既に変更していることに注意してください。
public class varString
{
[XmlText]
public string Value;
public string KeyWord;
public static implicit operator string(varString v)
{
return v == null ? null : (string)v.Value;
}
}
なぜそれが必要ですか?それはXMLを受け手のために解析するのを難しくします。 –
このようにXMLを編集する方が簡単です。 KeyWordは9/10倍のヌルなので、余分なタグの出力はしません。ただ個人的な好みはすべてです、本当に何にも影響しません。 – Hondros