public static JsonForgeDesc ForgeNonArray( string fieldName, JsonEventType other) { JsonDeserializerForge deserializerForge = new JsonDeserializerForgeByClassName( other.Detail.DeserializerClassName); JsonSerializerForge serializerForge; if (other.Detail.OptionalUnderlyingProvided == null) { serializerForge = new JsonSerializerForgeByMethod("WriteNested"); } else { serializerForge = new ProxyJsonSerializerForge( ( refs, method, classScope) => StaticMethod( typeof(JsonSerializerUtil), "WriteNested", refs.Context, refs.Field, NewInstanceInner(other.Detail.SerializerClassName) )); // NewInstanceInner(other.Detail.DeserializerFactoryClassName))); } return(new JsonForgeDesc(deserializerForge, serializerForge)); }
public static JsonForgeDesc ForgeArray( string fieldName, JsonEventType other) { var deserializerForge = new JsonDeserializerForgeArray( new JsonDeserializerForgeByClassName(other.Detail.DeserializerClassName), other.UnderlyingType); // JsonAllocatorForge startArray = new JsonAllocatorForgeWithAllocatorFactoryArray( // other.Detail.DeserializerFactoryClassName, // other.UnderlyingType); // JsonEndValueForge end = new JsonEndValueForgeCast(TypeHelper.GetArrayType(other.UnderlyingType)); JsonSerializerForge serializerForge; if (other.Detail.OptionalUnderlyingProvided == null) { serializerForge = new JsonSerializerForgeByMethod("WriteNestedArray"); } else { serializerForge = new ProxyJsonSerializerForge( ( refs, method, classScope) => StaticMethod( typeof(JsonSerializerUtil), "WriteNestedArray", refs.Context, refs.Field, NewInstanceInner(other.Detail.SerializerClassName) )); } return(new JsonForgeDesc(deserializerForge, serializerForge)); }