с .net 8, используя System.text.json , я могу сериализовать/десериализовать список . Я также могу сериализовать объект со свойством списка типов . Тем не менее, я не могу покинуть этот объект. Вот тест, который демонстрирует проблему: < /p>
using System.Text.Json;
namespace JsonDeserializationTests
{
public class Parent
{
public List Children { get; } = new List();
}
public class Child
{
public Child(string name)
{
Name = name;
}
public string Name { get; set; }
}
public class JsonSerializationTestSimple
{
[Fact]
public void CanSerializeAndDeserialize()
{
var parent = new Parent();
parent.Children.Add(new Child("Child A"));
parent.Children.Add(new Child("Child B"));
// Serialize a List instance directly.
var childrenJson = JsonSerializer.Serialize(parent.Children);
var deserializedChildren = JsonSerializer.Deserialize(childrenJson);
var childrenJson2 = JsonSerializer.Serialize(deserializedChildren);
Assert.True(childrenJson == childrenJson2); // This succeeds
// Both have the same JSON:
// [{"Name":"Child A"},{"Name":"Child B"}]
// Now try to serialzie the entire Parent object that has a List property.
var parentJson = JsonSerializer.Serialize(parent);
var deserializedParent = JsonSerializer.Deserialize(parentJson);
var parentJson2 = JsonSerializer.Serialize(deserializedParent);
Assert.True(parentJson == parentJson2); // This fails
// parentJson is as expected:
// {"Children":[{"Name":"Child A"},{"Name":"Child B"}]}
// but parentJson2 shows we did not deserialize the Children property:
// {"Children":[]}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... t-property