示例#1
0
        private IObjectGraphTraversalStrategy CreateTraversalStrategy()
        {
            ITypeInspector typeDescriptor = new ReadablePropertiesTypeInspector(typeResolver);

            if (IsOptionSet(SerializationOptions.Roundtrip))
            {
                typeDescriptor = new ReadableAndWritablePropertiesTypeInspector(typeDescriptor);
            }

            typeDescriptor = new NamingConventionTypeInspector(typeDescriptor, namingConvention);
            typeDescriptor = new YamlAttributesTypeInspector(typeDescriptor);
            if (IsOptionSet(SerializationOptions.DefaultToStaticType))
            {
                typeDescriptor = new CachedTypeInspector(typeDescriptor);
            }

            if (IsOptionSet(SerializationOptions.Roundtrip))
            {
                return(new RoundtripObjectGraphTraversalStrategy(this, typeDescriptor, typeResolver, 50));
            }
            else
            {
                return(new FullObjectGraphTraversalStrategy(this, typeDescriptor, typeResolver, 50, namingConvention));
            }
        }
示例#2
0
        private IObjectGraphTraversalStrategy CreateTraversalStrategy()
        {
            ITypeInspector typeDescriptor = new ReadablePropertiesTypeInspector(typeResolver);
            if (IsOptionSet(SerializationOptions.Roundtrip))
            {
                typeDescriptor = new ReadableAndWritablePropertiesTypeInspector(typeDescriptor);
            }

            typeDescriptor = new NamingConventionTypeInspector(typeDescriptor, namingConvention);
            typeDescriptor = new YamlAttributesTypeInspector(typeDescriptor);
            if (IsOptionSet(SerializationOptions.DefaultToStaticType))
            {
                typeDescriptor = new CachedTypeInspector(typeDescriptor);
            }

            if (IsOptionSet(SerializationOptions.Roundtrip))
            {
                return new RoundtripObjectGraphTraversalStrategy(this, typeDescriptor, typeResolver, 50);
            }
            else
            {
                return new FullObjectGraphTraversalStrategy(this, typeDescriptor, typeResolver, 50, namingConvention);
            }
        }