我有一个 List<>
的对象。他们的类没有“颜色”属性 ( String
) - 但我可以在序列化之前为每个列表元素派生此属性的值。
将此属性包含在 JSON 对象中以将其添加到类然后序列化整个对象的唯一方法是什么?
或者是否有一种方式/方法可以添加一个需要出现在 JSON 对象中的属性,否则在我的类中将毫无用处?
我知道可以使用各种字符串操作方法,但这样做感觉不对。
我正在使用 DataContractJsonSerializer。
最佳答案
您可以创建一个 data contract surrogate透明地用另一个类的实例替换您的类的实例。这个新类可以看起来像任何东西,但在您的情况下,它只是具有额外的 Colour
属性。
这样做的好处是您可以保留列表项的原始类型;代理是在序列化过程中创建的,您现有的代码根本不需要接触它们。
关于c# - 可以将属性添加到我的类的 JSON 版本,而类中不存在它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12456364/