Skip to content

Fix: response name assignment in request handler execution#309

Open
pksorensen wants to merge 4 commits intodelegateas:masterfrom
pksorensen:pks/reponsename-fix
Open

Fix: response name assignment in request handler execution#309
pksorensen wants to merge 4 commits intodelegateas:masterfrom
pksorensen:pks/reponsename-fix

Conversation

@pksorensen
Copy link
Member

No description provided.

pksorensen and others added 4 commits January 26, 2026 13:29
Fixes deserialization errors when restoring snapshots that contain EntityCollection
fields (e.g., Email.From, Email.To, PhoneCall.From, Appointment.OptionalAttendees).

Issue:
- Microsoft.Xrm.Sdk.EntityCollection contains a DataCollection<Entity> property
  that lacks a parameterless constructor, causing System.Text.Json deserialization
  to fail with: "Deserialization of types without a parameterless constructor...
  is not supported"
- This affects any activity entity with activity party collections

Solution:
- Created EntityCollectionDTO for JSON deserialization using JsonElement
- Added special handling in ConvertValueFromSerializableDTO() to:
  1. Parse JSON manually using JsonElement (avoiding constructor requirement)
  2. Reconstruct Entity objects property-by-property (LogicalName, Id, Attributes)
  3. Create new EntityCollection with reconstructed entities
  4. Restore collection metadata (MoreRecords, PagingCookie, etc.)

This follows the existing pattern used for OptionSetValueCollection deserialization.

Tested by successfully restoring a snapshot containing email entities with From/To
fields via XrmEmulator service startup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant