static ManagedGameObjectIO() { var serializer_ = new SerializerBuilder(); var typeInspectorFactories_ = serializer_.GetType().GetField("typeInspectorFactories", BindingFlags.NonPublic | BindingFlags.Instance); var typeInspectorFactories = typeInspectorFactories_.GetValue(serializer_); var Add = typeInspectorFactories.GetType().GetMethod("Add", BindingFlags.Public | BindingFlags.Instance); Add.Invoke(typeInspectorFactories, new object[] { typeof(YamlAttributesTypeInspector), new Func <ITypeInspector, ITypeInspector>((ITypeInspector inner) => new YamlAttributesTypeInspector(inner)) }); var Remove = typeInspectorFactories.GetType().GetMethod("Remove", BindingFlags.Public | BindingFlags.Instance); Remove.Invoke(typeInspectorFactories, new object[] { typeof(YamlDotNet.Serialization.YamlAttributesTypeInspector) }); #if DEBUG var _namingConvention = serializer_.GetType().GetField("namingConvention", BindingFlags.NonPublic | BindingFlags.Instance); var namingConvention = _namingConvention.GetValue(serializer_) as INamingConvention; var objectGraphTraversalStrategyFactory = (ObjectGraphTraversalStrategyFactory)((ITypeInspector typeInspector, ITypeResolver typeResolver, IEnumerable <IYamlTypeConverter> typeConverters, int maximumRecursion) => new Debug_TraversalStrategy(typeInspector, typeResolver, maximumRecursion, namingConvention)); serializer_.WithObjectGraphTraversalStrategyFactory(objectGraphTraversalStrategyFactory); #endif m_Serializer = serializer_.Build(); var deserializer_ = new DeserializerBuilder(); var BuildTypeInspector = deserializer_.GetType().GetMethod("BuildTypeInspector", BindingFlags.NonPublic | BindingFlags.Instance); deserializer_.WithNodeDeserializer(new ManagedGameObject_Deserializer(BuildTypeInspector.Invoke(deserializer_, new object[] { }) as ITypeInspector)); m_Deserializer = deserializer_.Build(); }
internal static T Parse <T>(StreamReader streamReader) { var deserializer = new DeserializerBuilder(); deserializer.WithTypeConverter(new YamlTypeConverterRegex()); deserializer.WithTypeConverter(new YamlTypeConverterTupleRegexString()); deserializer.WithNodeDeserializer(inner => new ValidatingNodeDeserializer(inner), s => s.InsteadOf <ObjectNodeDeserializer>()); return(deserializer.Build().Deserialize <T>(streamReader)); }
public static DeserializerBuilder WithSerializationEventSupport(this DeserializerBuilder builder) { return(builder .WithNodeDeserializer(inner => new EventSupportingNodeDeserializer(inner), s => s.InsteadOf <ObjectNodeDeserializer>())); }
public static DeserializerBuilder WithRequiredPropertyValidation(this DeserializerBuilder builder) { return(builder .WithNodeDeserializer(inner => new ValidatingDeserializer(inner), s => s.InsteadOf <ObjectNodeDeserializer>())); }