Ben NewtonSoft.Json son sürümünü kullanıyorum ve üçüncü taraf nesneler serpin gerekir. alanları numaralı alanları seri hale getirmem gerekiyor.C# Json serialization destek alanı referansları yerine diğer yol yerine property
JsonSerializerSettings settings_ = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Include,
DefaultValueHandling = DefaultValueHandling.Include,
PreserveReferencesHandling = PreserveReferencesHandling.All,
ObjectCreationHandling = ObjectCreationHandling.Replace,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
ContractResolver = new DynamicContractResolver(),
};
public class DynamicContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
properties = properties.Where(p => p.PropertyName != "MonitoringInstance" && p.PropertyName != "SessionInstance").ToList();
var fields = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Select(f => CreateProperty(f, memberSerialization));
return properties.Union(fields, new EqualityComparer()).ToList();
}
}
Ne yazık ki, Ne kadar çabalarsam, destek alan Mülkiyet başvuran Aşağıda kullandığım JsonSerializerSettings olduğunu. Tersine çevirmek için var mı? Herhangi bir fikir takdir edilir.
Üçüncü taraf nesneler –
Üçüncü taraf nesnelerinizin ilk sırada seri hale getirilebileceğini nereden biliyorsunuz? Ne kadar büyük olduklarına bağlı olarak, söz konusu nesneleri seri hale getirilebilir DTO'lara kopyalamak mantıklı olabilir. – Toxantron
[Serializable] özelliğine sahiptir. Bu büyük. Yani, DTO karşı üretken. –