我有一个我序列化的DTO类
Json.Serialize(MyClass)
Run Code Online (Sandbox Code Playgroud)
我怎样才能排除它的公共财产?
(它必须是公开的,因为我在其他地方的代码中使用它)
我可以使用动态忽略密封类中的属性吗System.Text.Json.JsonSerializer?
来自另一个库的示例类:
public sealed class FrozenClass
{
// [JsonIgnore] <- cannot apply because I don't own this class
public int InternalId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
默认序列化:
var person = new FrozenClass() { InternalId = 3, FirstName = "Dorothy", LastName = "Vaughan" };
var jsonString = System.Text.Json.JsonSerializer.Serialize(person);
Run Code Online (Sandbox Code Playgroud)
实际结果:
{ "InternalId": 3, "FirstName": "Dorothy", "LastName": "Vaughan" }
Run Code Online (Sandbox Code Playgroud)
预期结果:
{ …Run Code Online (Sandbox Code Playgroud) ,我有一个类,其中我现在有三个属性我想做什么,如果在对象中,如果任何一个null或空,那么我想从下面的对象中删除它是我的代码.
public class TestClass
{
public string Name { get; set; }
public int ID { get; set; }
public DateTime? DateTime { get; set; }
public string Address { get; set; }
}
TestClass t=new TestClass();
t.Address="address";
t.ID=132;
t.Name=string.Empty;
t.DateTime=null;
Run Code Online (Sandbox Code Playgroud)
现在我想要TestClass的对象,但是Name和DateTime属性不应该是它们在对象中,是否可能?请帮我