如何使JavaScriptSerializer忽略[ScriptIgnore]标签?

时间:2012-10-09 17:16:42

标签: c# javascriptserializer scriptignore

我需要JavaScriptSerializer忽略[ScriptIgnore]个标签。我想我可以使用自定义JavaScriptConverter执行此操作。但是,我不太确定。我需要做的就是忽略属性,其余的可以用基本定义来完成。您可以看到code for JavaScriptSerializer here

我担心实现自定义转换器(例如this example)最终会无法正确序列化复杂的自定义对象图。

回顾Microsoft的JavaScriptSerializer代码,在252-253行代码:

// Ignore all fields marked as [ScriptIgnore]
if (fieldInfo.IsDefined(typeof(ScriptIgnoreAttribute), true /*inherits*/)) 
 continue;

是我真正需要绕过的唯一部分。我只需要注释掉那行代码。不幸的是,这不太可能,所以我需要一些方法来忽略整个过程的一部分。

如何忽略该行代码,或以某种方式提供不忽略[ScriptIgnore]属性的自定义实现?

1 个答案:

答案 0 :(得分:1)

我最终必须模仿JavaScriptSerializer类并在模拟类中提供一些自定义。不确定我会建议这样做,还是它非常易读。另一方面,它有效,我喜欢它。