Свернуть свойства с разделом CData - Сериализация XML C #

Мне нужно сериализовать мой объект таким образом, чтобы свойства, которые я хочу, обернулись вокруг разделов CData. Я надеялся, что смогу сделать что-то вроде этого:

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; }
    }

Есть ли какой-либо атрибут или реализация, которая могла бы обернуть мои специфические свойства в раздел CData? Существующие ответы на StackOverflow предлагают возиться с самим объектом (классом). Это будет очень грязно.

В следующей теме:Как вы сериализуете строку как CDATA, используя XmlSerializer?

Ответ Филиппа предлагает создать другое свойство и соответствующее ему свойство CData. Однако свойство является строкой. CreateCDataSection () также принимает строку. Мне нужно обернуть свои пользовательские объекты / списки вокруг CDataSections. Как я могу это сделать? Любая помощь будет оценена. Благодарю.

Пример XML для вышеуказанного класса заказа:

<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>

Ответы на вопрос(1)

Ваш ответ на вопрос