Exemple #1
0
        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());
        }
Exemple #2
0
 /// <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);
 }
Exemple #6
0
 public static void Check <T>(T item, IonSerializationOptions options)
 {
     Check(new IonSerializer(options), item);
 }
Exemple #7
0
 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 + ">");
 }
Exemple #9
0
 public object Create(IonSerializationOptions options, IIonReader reader, Type targetType)
 {
     return(Activator.CreateInstance(typeof(CustomClass)));
 }