有关元数据的ScriptIgnore

时间:2010-11-11 10:32:18

标签: c# json serialization data-annotations

我正在使用JavaScriptSerializer来序列化EF4实体,并在尝试将它们序列化为JSON时获取循环引用。

我不想编辑生成的模型,因此我提供了元数据类,并将这些属性标记为ScriptIgnore,但我猜JavaScriptSerializer不使用元数据,因为我仍然得到相同的错误。

那么在这种情况下,您如何将对象序列化为json?有没有办法在不使用ViewModel的情况下执行此操作,可能还有默认的JavaScriptSerializer。

1 个答案:

答案 0 :(得分:3)

添加JavaScriptConverter like so。请注意,我们不需要对要序列化的实体进行任何特殊访问即可,但如果您有许多受此问题影响的实体,则可能会非常痛苦。如果这可能是一个问题,那么只需编写一个可以更直接控制的DTO类(与您的模型一起使用双胞胎)可能就不那么容易了。

您不能编辑生成的类,并且(令人沮丧的是)您不能使用partial classpartial class的另一部分中声明的成员添加属性。