Quebrar propriedades com a seção CData - XML Serialization C #
Preciso serializar meu objeto de forma que as propriedades que eu quero sejam agrupadas em seções CData. Eu esperava poder fazer algo assim:
public class Order
{
[JsonProperty]
public int OrderId { get; set; }
[JsonProperty]
public string Name { get; set; }
[JsonProperty]
public int Type { get; set; }
[JsonProperty]
public decimal Amount { get; set; }
[JsonProperty]
public DateTime Date { get; set; }
[DataMember]
[JsonProperty]
**[WrapCData]**
public List<Option> ListB { get; set; }
[DataMember]
public List<string> ListC { get; set; }
**[WrapCData]**
public Product Product { get; set; }
}
Existe algum atributo ou implementação que possa agrupar minhas propriedades específicas em torno de uma seção CData? As respostas existentes do StackOverflow sugerem mexer com a própria entidade (classe). Isso ficaria muito confuso.
No seguinte segmento:Como você serializa uma string como CDATA usando XmlSerializer?
A resposta de Philip sugere criar outra propriedade e sua propriedade CData correspondente. No entanto, a propriedade é uma sequência. CreateCDataSection () também usa uma string. Preciso agrupar meus objetos / listas personalizados em torno de CDataSections. Como eu posso fazer isso? Qualquer ajuda seria apreciada. Obrigado.
Exemplo de XML para a classe de pedido acima:
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OrderId>2</OrderId>
<Name>Some Name</Name>
<Type>1</Type>
<Amount>100</Amount>
<Date>2015-12-07T15:10:49.6031106+05:00</Date>
<![CDATA[
<ListB>
<Option>
<OptionValue>OptionValue1</OptionValue>
<OptionName>Option1</OptionName>
</Option>
<Option>
<OptionValue>OptionValue2</OptionValue>
<OptionName>Option2</OptionName>
</Option>
</ListB>
]]>
<ListC>
<string>ListItem1</string>
<string>ListItem2</string>
</ListC>
<![CDATA[
<Product>
<ProductId>1</ProductId>
<Name>ProductName</Name>
<Type>Product Type</Type>
</Product>
]]>
</Order>