В C # я пытаюсь сериализовать ClassA в XML:
[Serializable]
public ClassA
{
[XmlElement]
public string PropertyA { get; set; } // works fine
[XmlElement]
public ClassB MyClassB { get; set; }
}
[Serializable]
public ClassB
{
private string _value;
public override string ToString()
{
return _value;
}
}
К сожалению, сериализованный результат:
<PropertyA>Value</PropertyA>
<ClassB />
Вместо этого я хочу, чтобы это было:
<PropertyA>Value</PropertyA>
<ClassB>Test</ClassB>
... при условии _value == "Test"
. Как мне это сделать? Должен ли я иметь для предоставления публичной собственности в ClassB для _value
? Спасибо!
UPDATE:
Реализуя интерфейс IXmlSerializable в ClassB (, показанный здесь # 12), генерируется следующий XML:
<PropertyA>Value</PropertyA>
<ClassB>
<Value>Test</Value>
</ClassB>
Это решение почти приемлемо, но было бы неплохо избавиться от тегов. Есть идеи?