Jak serializować / deserializować niezmienny typ listy w c #

Jeśli mam zdefiniowaną klasę

[DataContract()]
class MyObject {
    [DataMember()]
    ImmutableList<string> Strings { get; private set}
}

TheImmutableList<T> typ pochodzi z biblioteki immutableshttps://www.nuget.org/packages/Microsoft.Bcl.Immutable. Zauważ, że klasa ImmutableList nie ma domyślnego konstruktora ani zmiennej metody Add. Dodawanie rzeczy do listy ma formę.

myList = myList.Add("new string");

Czy mogę dodać niestandardowe wsparcie do mechanizmu serializacji .NET, aby obsługiwać ten typ i pokazać, jak go deserializować?

Obecnie kolekcja jest po prostu pomijana przy deserializacji, ale dobrze jest ją serializować.

questionAnswers(3)

yourAnswerToTheQuestion