Skip to content

Serializer fails on System.Text.Encoding objects #1060

@montoner0

Description

@montoner0

Describe the bug
The Serializer throws NotSupportedException when it hits an Encoding object.
Stack trace:

   at System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
   at YamlDotNet.PropertyInfoExtensions.ReadValue(PropertyInfo property, Object target)
   at YamlDotNet.Serialization.TypeInspectors.ReadablePropertiesTypeInspector.ReflectionPropertyDescriptor.Read(Object target)
   at YamlDotNet.Serialization.YamlAttributeOverridesInspector.OverridePropertyDescriptor.Read(Object target)
   at YamlDotNet.Serialization.PropertyDescriptor.Read(Object target)
   at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
   at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
   at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IPropertyDescriptor propertyDescriptor, Object name, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
   at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.YamlDotNet.Serialization.IObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor graph, IObjectGraphVisitor`1 visitor, TContext context, ObjectSerializer serializer)
   at YamlDotNet.Serialization.SerializerBuilder.ValueSerializer.SerializeValue(IEmitter emitter, Object value, Type type)
   at YamlDotNet.Serialization.Serializer.EmitDocument(IEmitter emitter, Object graph, Type type)
   at YamlDotNet.Serialization.Serializer.Serialize(IEmitter emitter, Object graph)
   at YamlDotNet.Serialization.Serializer.Serialize(TextWriter writer, Object graph)
   at YamlDotNet.Serialization.Serializer.Serialize(Object graph)
   at Program.<<Initialize>>d__0.MoveNext() in :line 10
--- End of stack trace from previous location ---
   at Program.<Main>()

To Reproduce

using YamlDotNet.Serialization;

new SerializerBuilder().Build().Serialize(Encoding.ASCII);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions