public void DeserializeAnnotatedIonToClassNameWithAnnotatedTypeAssemblies() { IonSerializationOptions options = new IonSerializationOptions() { AnnotatedTypeAssemblies = new string[] { typeof(Truck).Assembly.GetName().Name } }; IIonReader reader = IonReaderBuilder.Build(TestObjects.truckIonText); IonSerializer ionSerializer = new IonSerializer(options); Vehicle truck = ionSerializer.Deserialize <Vehicle>(reader); AssertIsTruck(truck); // Ensure default loaded assemblies are not searched in if annotated type assemblies are given options = new IonSerializationOptions { AnnotatedTypeAssemblies = new string[] { "mockAssemblyName" } }; reader = IonReaderBuilder.Build(TestObjects.truckIonText); ionSerializer = new IonSerializer(options); truck = ionSerializer.Deserialize <Vehicle>(reader); Assert.AreNotEqual(TestObjects.nativeTruck.ToString(), truck.ToString()); }
/// <inheritdoc/> public IIonWriter Create(IonSerializationOptions options, Stream stream) { return(IonTextWriterBuilder.Build( new StreamWriter(stream), IonTextOptions.Json )); }
public override IonSerializer <Course> Create(IonSerializationOptions options, Dictionary <string, object> context) { return(new CourseSerializer((UpdateCourseSections)context.GetValueOrDefault("customCourseSerializer", null))); }
public override IonSerializer <Unicorn> Create(IonSerializationOptions options, Dictionary <string, object> context) { return(new UnicornSerializer((string)context.GetValueOrDefault("drop", "Alicorn"))); }
/// <summary> /// Initializes a new instance of the <see cref="ObjectSerializer"/> class. /// </summary> /// /// <param name="options">Serialization options for customizing serializer behavior.</param> public ObjectSerializer(IonSerializationOptions options) { serializer = new IonSerializer(options); }
public static void Check <T>(T item, IonSerializationOptions options) { Check(new IonSerializer(options), item); }
public void Apply(IonSerializationOptions options, IIonWriter writer, Type type) { writer.AddTypeAnnotation("custom"); }
public string Apply(IonSerializationOptions options, IonAnnotateTypeAttribute annotateType, Type type) { annotateType.Prefix ??= options.TypeAnnotationPrefix.Apply(type); annotateType.Name ??= options.TypeAnnotationName.Apply(type); return("<" + annotateType.Prefix + "." + annotateType.Name + ">"); }
public object Create(IonSerializationOptions options, IIonReader reader, Type targetType) { return(Activator.CreateInstance(typeof(CustomClass))); }