我有一个List<>
对象。他们的类没有“颜色”属性(String
)——但我可以在序列化之前为每个列表元素推导出这个属性的值。
将这个属性包含在 JSON 对象中以将其添加到类中然后序列化整个事物的唯一方法是吗?
或者有没有一种方法/方法来添加需要出现在 JSON 对象中的属性,否则在我的类中将非常无用?
我知道可以使用各种字符串操作方法,但这样做感觉不对。
我正在使用DataContractJsonSerializer。
我有一个List<>
对象。他们的类没有“颜色”属性(String
)——但我可以在序列化之前为每个列表元素推导出这个属性的值。
将这个属性包含在 JSON 对象中以将其添加到类中然后序列化整个事物的唯一方法是吗?
或者有没有一种方法/方法来添加需要出现在 JSON 对象中的属性,否则在我的类中将非常无用?
我知道可以使用各种字符串操作方法,但这样做感觉不对。
我正在使用DataContractJsonSerializer。
您可以创建一个数据协定代理,它透明地将您的类的实例替换为另一个类的实例。这个新类可以看起来像任何东西,但在您的情况下,它只是具有附加Colour
属性。
这样做的好处是您可以保留列表项的原始类型;代理是在序列化过程中创建的,您现有的代码根本不需要接触它们。
我假设您可以创建一个从对象列表继承的新类,并在主体类上添加无用的字符串。
创建 JSON 时,只需使用派生类,它将包含添加的字符串值并从原始对象继承所有其余数据。