public Deserializer( IObjectFactory objectFactory = null, INamingConvention namingConvention = null, bool ignoreUnmatched = false, YamlAttributeOverrides overrides = null) { objectFactory = objectFactory ?? new DefaultObjectFactory(); namingConvention = namingConvention ?? new NullNamingConvention(); typeDescriptor.TypeDescriptor = new CachedTypeInspector( new YamlAttributesTypeInspector( new YamlAttributeOverridesInspector( new NamingConventionTypeInspector( new ReadableAndWritablePropertiesTypeInspector( new ReadablePropertiesTypeInspector( new StaticTypeResolver() ) ), namingConvention ), overrides ) ) ); converters = new List <IYamlTypeConverter>(); foreach (IYamlTypeConverter yamlTypeConverter in YamlTypeConverters.GetBuiltInConverters(false)) { converters.Add(yamlTypeConverter); } NodeDeserializers = new List <INodeDeserializer>(); NodeDeserializers.Add(new TypeConverterNodeDeserializer(converters)); NodeDeserializers.Add(new NullNodeDeserializer()); NodeDeserializers.Add(new ScalarNodeDeserializer()); NodeDeserializers.Add(new ArrayNodeDeserializer()); NodeDeserializers.Add(new DictionaryNodeDeserializer(objectFactory)); NodeDeserializers.Add(new CollectionNodeDeserializer(objectFactory)); NodeDeserializers.Add(new EnumerableNodeDeserializer()); NodeDeserializers.Add(new ObjectNodeDeserializer(objectFactory, typeDescriptor, ignoreUnmatched)); tagMappings = new Dictionary <string, Type>(predefinedTagMappings); TypeResolvers = new List <INodeTypeResolver>(); TypeResolvers.Add(new TagNodeTypeResolver(tagMappings)); TypeResolvers.Add(new TypeNameInTagNodeTypeResolver()); TypeResolvers.Add(new DefaultContainersNodeTypeResolver()); valueDeserializer = new AliasValueDeserializer( new NodeValueDeserializer( NodeDeserializers, TypeResolvers ) ); }
/// <summary> /// /// </summary> /// <param name="options">Options that control how the serialization is to be performed.</param> /// <param name="namingConvention">Naming strategy to use for serialized property names</param> /// <param name="overrides">Yaml attribute overrides</param> public Serializer(SerializationOptions options = SerializationOptions.None, INamingConvention namingConvention = null, YamlAttributeOverrides overrides = null) { this.options = options; this.namingConvention = namingConvention ?? new NullNamingConvention(); this.overrides = overrides; Converters = new List <IYamlTypeConverter>(); foreach (IYamlTypeConverter yamlTypeConverter in Utilities.YamlTypeConverters.GetBuiltInConverters(IsOptionSet(SerializationOptions.JsonCompatible))) { Converters.Add(yamlTypeConverter); } typeResolver = IsOptionSet(SerializationOptions.DefaultToStaticType) ? (ITypeResolver) new StaticTypeResolver() : (ITypeResolver) new DynamicTypeResolver(); }
public OverridePropertyDescriptor(IPropertyDescriptor baseDescriptor, YamlAttributeOverrides overrides, Type classType) { this.baseDescriptor = baseDescriptor; this.overrides = overrides; this.classType = classType; }
public YamlAttributeOverridesInspector(ITypeInspector innerTypeDescriptor, YamlAttributeOverrides overrides) { this.innerTypeDescriptor = innerTypeDescriptor; this.overrides = overrides; }