我有以下类型:
public class Product : Dictionary<string, object>
{
[JsonInclude]
public string ProductId { get; set; }
public Product(string productId) : base()
{
ProductId = productId;
}
}
Run Code Online (Sandbox Code Playgroud)
使用 System.Text.Json 进行序列化时,它不包含属性(即ProductId)。添加或删除[JsonInclude]似乎没有任何效果。
测试用例:
[Fact]
public void SimpleTest()
{
var p = new Product("ABC123");
p["foo"] = "bar";
var json = JsonSerializer.Serialize(p);
Assert.Contains("productId", json, StringComparison.OrdinalIgnoreCase);
}
Run Code Online (Sandbox Code Playgroud)
并收到输出:
{"foo":"bar"}
Run Code Online (Sandbox Code Playgroud)
如何使其在序列化期间包含我的类型上的自定义属性?(注意:不关心反序列化)。