我需要能够控制类上的某些属性如何/是否进行序列化。最简单的情况是[ScriptIgnore]
。然而,我只想要这些属性在我正在处理的这个特定序列化情况下得到保留 - 如果应用程序中下游的其他模块也想要序列化这些对象,则不应该有任何这些属性的影响。
我的想法是在属性上使用自定义属性 MyAttribute
,并初始化 JsonSerializer 的特定实例以具有知道查找该属性的钩子。
乍一看,我似乎没有看到JSON.NET中可用的任何挂接点将提供 PropertyInfo
来执行这样的检查 - 仅提供属性值。我错过了什么吗?或者有更好的方法来解决这个问题吗?
if (!Ignores.ContainsKey(type)) Ignores[type] = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
- abraganzaIgnores[type].Add(prop); }`
- abraganza.Add
如果已经存在就会返回false,对吧? - drzaus|| (property.DeclaringType.BaseType != null && this.IsIgnored(property.DeclaringType.BaseType, property.PropertyName))
- Tallmaris