我需要制作 JavaScriptSerializer忽略 [ScriptIgnore]
标签。我想我可以用定制的 JavaScriptConverter 来做到这一点.但是,我不太确定。我需要做的就是忽略该属性,其余的可以通过基本定义来完成。你可以看到 code for JavaScriptSerializer
here .
我担心实现自定义转换器,例如 this example最终将无法正确序列化复杂的自定义对象图。
回顾微软的 JavaScriptSerializer 代码,第 252-253
行代码:
// Ignore all fields marked as [ScriptIgnore]
if (fieldInfo.IsDefined(typeof(ScriptIgnoreAttribute), true /*inherits*/))
continue;
是我真正需要绕过的唯一部分。我只需要注释掉那行代码。不幸的是,这实际上是不可能的,所以我需要一些方法来忽略整个过程中的那一部分。
我怎样才能忽略那行代码,或者以某种方式提供不忽略 [ScriptIgnore]
属性的自定义实现?
最佳答案
我最终不得不模仿 JavaScriptSerializer 类并在模仿类内部提供一些定制。不确定我会建议这样做,还是它的可读性很强。另一方面,它有效,我喜欢它。
关于c# - 如何让 JavaScriptSerializer 忽略 [ScriptIgnore] 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805086/