Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 4
0
 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)));
 }