/* * protected override List<MemberInfo> GetSerializableMembers(Type objectType) * { * var members = base.GetSerializableMembers(objectType); * * members.RemoveAll(memberInfo => * (NHibernateJsonHelper.IsMemberPartOfNHibernateProxyInterface(memberInfo)) || * (NHibernateJsonHelper.IsMemberDynamicProxyMixin(memberInfo)) || * (NHibernateJsonHelper.IsMemberMarkedWithIgnoreAttribute(memberInfo, objectType)) || * (NHibernateJsonHelper.IsMemberInheritedFromProxySuperclass(memberInfo, objectType))); * * return members; * } * */ protected override List <MemberInfo> GetSerializableMembers(Type objectType) { var members = base.GetSerializableMembers(objectType); members.RemoveAll( memberInfo => (NhibernateJsonHelper.IsMemberMarkedWithIgnoreAttribute(memberInfo, objectType))); return(members); }
protected override JsonContract CreateContract(Type objectType) { if (NhibernateJsonHelper.IsAssignableFromNHibernateProxy(objectType)) { return(base.CreateContract(objectType.BaseType)); } return(base.CreateContract(objectType)); }
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var property = base.CreateProperty(member, memberSerialization); var pinfo = member as PropertyInfo; if ((typeof(string) != property.PropertyType) && typeof(IEnumerable <>).IsAssignableFrom(property.PropertyType) && pinfo != null) { property.ShouldSerialize = instance => NhibernateJsonHelper.IsInitialized(pinfo.GetValue(instance, null)); } return(property); }