Ciao sto serializzando degli oggetti un po' complessi e ho una struttura dati che non posso toccare ma non è completamente corretta
allora volevo fare in modo di gestire lo stesso tutti questi casi durante la serializzazione per non far andare in errore newtosoft
ho overridato la funzione per creare le proprietà
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) {
ho dei campi lazy che mi vanno in errore e delle liste che al loro interno hanno dei loop, fino ai campi lazy sono riuscita a gestirli così
if (property.ShouldSerialize == null) {
property.ShouldSerialize = instance => {
try {
PropertyInfo prop = (PropertyInfo)member;
if (prop.CanRead) {
var value = prop.GetValue(instance, null);
if (value != null
&& value.GetType().IsSubclassOfRawGeneric(typeof(NHibernate.Collection.Generic.PersistentGenericBag<>))
&& !((value as NHibernate.Collection.AbstractPersistentCollection).WasInitialized)) {
return false;
}
return true;
}
}
catch {}
return false;
};
}
invece per i loop non so come fare a intercettarli per non farglieli serializzare
l'errore che ottengo è
NHibernate.LazyInitializationException: Initializing[]-Could not initialize proxy - no Session.
qualcuno si è mai imbattuto in questo problema?
Grazie infinite