Closed
Description
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)