Ejemplo n.º 1
0
 /// <summary>
 /// Determines whether this instance of <c>MemberWrapper</c> can be serialized.
 /// </summary>
 /// <param name="serializationFields">The serialization fields.</param>
 /// <returns>
 /// <c>true</c> if this instance of <c>MemberWrapper</c> can be serialized; otherwise, <c>false</c>.
 /// </returns>
 public bool IsAllowedToBeSerialized(YAXSerializationFields serializationFields)
 {
     if (serializationFields == YAXSerializationFields.AllFields)
     {
         return(!IsAttributedAsDontSerialize);
     }
     else if (serializationFields == YAXSerializationFields.AttributedFieldsOnly)
     {
         return(!IsAttributedAsDontSerialize && IsAttributedAsSerializable);
     }
     else if (serializationFields == YAXSerializationFields.PublicPropertiesOnly)
     {
         return(!IsAttributedAsDontSerialize && m_isProperty && ReflectionUtils.IsPublicProperty(m_propertyInfoInstance));
     }
     else
     {
         throw new Exception("Unknown serialization field option");
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        ///     Determines whether this instance of <c>MemberWrapper</c> can be serialized.
        /// </summary>
        /// <param name="serializationFields">The serialization fields.</param>
        /// <param name="dontSerializePropertiesWithNoSetter">Skip serialization of fields which doesn't have a setter.</param>
        /// <returns>
        ///     <c>true</c> if this instance of <c>MemberWrapper</c> can be serialized; otherwise, <c>false</c>.
        /// </returns>
        public bool IsAllowedToBeSerialized(YAXSerializationFields serializationFields,
                                            bool dontSerializePropertiesWithNoSetter)
        {
            if (dontSerializePropertiesWithNoSetter && _isProperty && !_propertyInfoInstance.CanWrite)
            {
                return(false);
            }

            if (serializationFields == YAXSerializationFields.AllFields)
            {
                return(!IsAttributedAsDontSerialize);
            }
            if (serializationFields == YAXSerializationFields.AttributedFieldsOnly)
            {
                return(!IsAttributedAsDontSerialize && IsAttributedAsSerializable);
            }
            if (serializationFields == YAXSerializationFields.PublicPropertiesOnly)
            {
                return(!IsAttributedAsDontSerialize && _isProperty &&
                       ReflectionUtils.IsPublicProperty(_propertyInfoInstance));
            }
            throw new Exception("Unknown serialization field option");
        }