Я знаю о ScriptIgnoreAttribute.
ScriptIgnoreAttribute
Но что, если я хочу игнорировать свойство, основанное на критериях? Например, как игнорировать свойство nullable при сериализации, только если оно пустое и не содержит никакого значения?
https://msdn.microsoft.com/tr-tr/library/system.web.script.serialization.scriptignoreattribute(v=vs.110).aspx
Использование [ScriptIgnore]
using System; using System.Web.Script.Serialization; public class Group { // The JavaScriptSerializer ignores this field. [ScriptIgnore] public string Comment; // The JavaScriptSerializer serializes this field. public string GroupName; }
Лучший возможный ответ, который у меня есть, - создать собственный JavaScriptConverter и проанализировать свойство на основе ваших собственных условий.
public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer) { //... if (!object.ReferenceEquals(dictionary["MyProperty"],null)){ // My Code } //... }
Я использовал внутренние вместо общедоступных свойств, и у меня это сработало