Skip to content

DataContractJsonSerializer implementation overrides fewer methods from base class #19378

@danmoseley

Description

@danmoseley

The presence or absence of an override is not a breaking change. It is really a matter for the implementation. However the API diff tool does flag them and I noticed that these are not present in Core but were in Desktop Could you please take a look and confirm that that is intentional?

namespace System.Runtime.Serialization.Json {
    public sealed class DataContractJsonSerializer : XmlObjectSerializer {
        public override bool IsStartObject(XmlReader reader);
        public override object ReadObject(XmlDictionaryReader reader);
        public override object ReadObject(XmlReader reader);
        public override object ReadObject(XmlReader reader, bool verifyObjectName);
        public override void WriteEndObject(XmlWriter writer);
        public override void WriteObject(XmlDictionaryWriter writer, object graph);
        public override void WriteObject(XmlWriter writer, object graph);
        public override void WriteObjectContent(XmlWriter writer, object graph);
        public override void WriteStartObject(XmlWriter writer, object graph);
    }
}

In Desktop for example, we have

public override bool IsStartObject(XmlReader reader)
{
	return base.IsStartObjectHandleExceptions(new JsonReaderDelegator(reader));
}

whereas in Core the base class will be called which has

public virtual bool IsStartObject(XmlReader reader)
{
	XmlObjectSerializer.CheckNull(reader, "reader");
	return this.IsStartObject(XmlDictionaryReader.CreateDictionaryReader(reader));
}

@shmao can you please confirm these are omitted by design and if so close this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions