private bool TryInitialize(TSerializer serializer, Type declaringType, PropertyInfo propertyInfo) { if (this.ShouldSerializeProperty(serializer, declaringType, propertyInfo)) { this.Initialize(serializer, propertyInfo); return(true); } MemberHelperBase <TSerializer> .ValidateSkippedMember(propertyInfo); return(false); }
private bool TryInitialize(TSerializer serializer, Type declaringType, FieldInfo fieldInfo) { bool canRead = true; bool canWrite = !fieldInfo.IsInitOnly && !fieldInfo.IsLiteral; if (this.ShouldSerializeMember(serializer, declaringType, fieldInfo, fieldInfo.FieldType, fieldInfo.IsPublic, canRead, canWrite)) { this.Initialize(serializer, fieldInfo, canWrite); return(true); } MemberHelperBase <TSerializer> .ValidateSkippedMember(fieldInfo); return(false); }
protected internal override void Initialize(IntermediateSerializer serializer) { if (base.TargetType.BaseType != null) { this.baseSerializer = serializer.GetTypeSerializer(base.TargetType.BaseType); } MemberHelperBase <IntermediateSerializer> .CreateMemberHelpers <ReflectiveSerializerMemberHelper>(serializer, base.TargetType, this.memberHelpers); if (CollectionUtils.IsCollection(base.TargetType, false)) { this.collectionHelper = serializer.GetCollectionHelper(base.TargetType); } object[] customAttributes = base.TargetType.GetCustomAttributes(typeof(ContentSerializerCollectionItemNameAttribute), true); if (customAttributes.Length == 1) { this.collectionItemName = ((ContentSerializerCollectionItemNameAttribute)customAttributes[0]).CollectionItemName; } }
private bool ShouldSerializeMember(TSerializer serializer, Type declaringType, MemberInfo memberInfo, Type memberType, bool isPublic, bool canRead, bool canWrite) { return(canRead && !memberInfo.IsDefined(typeof(ContentSerializerIgnoreAttribute), false) && (isPublic || Attribute.GetCustomAttribute(memberInfo, typeof(ContentSerializerAttribute)) != null) && (canWrite || this.CanDeserializeIntoExistingObject(serializer, memberType)) && (!declaringType.IsValueType || !MemberHelperBase <TSerializer> .IsSharedResource(memberInfo))); }