Skip to content

AIEntityConverter Not Invoked When Serializing AIEntity Inside Activity.Entities #298

Closed
@msftshlomiyosef

Description

@msftshlomiyosef

Version

  • Nuget package version: [1.1.91-beta]]

Describe the bug
When serializing an Activity that contains an AIEntity in its Entities list, the EntityConverter is used for AIEntity instead of delegating to the registered AIEntityConverter. As a result, special fields like @type, @context, and @id are not written correctly.
To Reproduce
Test:

        [Fact]
        public void ActivityWithDerivedEntitySerializationTest()
        {
            var jsonIn = "{\"membersAdded\":[],\"membersRemoved\":[],\"reactionsAdded\":[],\"reactionsRemoved\":[],\"attachments\":[],\"entities\":[{\"@type\":\"Message\",\"@context\":\"https://schema.org\",\"@id\":\"\",\"additionalType\":[\"AIGeneratedContent\"],\"citation\":[],\"type\":\"https://schema.org/Message\"}],\"listenFor\":[],\"textHighlights\":[]}";

            var activity = ProtocolJsonSerializer.ToObject<Activity>(jsonIn);
            var jsonOut = ProtocolJsonSerializer.ToJson(activity);

            Assert.Equal(jsonIn, jsonOut);
        }

Outcome:

    Assert.Equal() Failure: Strings differ
                                  ↓ (pos 112)
Expected: ···"s":[],"entities":[{"@type":"Message","@co"···
Actual:   ···"s":[],"entities":[{"atType":"Message","at"···
                                  ↑ (pos 112)

Metadata

Metadata

Assignees

Labels

P1bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions