public bool IsAllowedToBeSerialized(YAXSerializationFields serializationFields, bool dontSerializePropertiesWithNoSetter)
{
if (dontSerializePropertiesWithNoSetter && m_isProperty && !m_propertyInfoInstance.CanWrite)
return false;
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");
}