Json.NET - 如何在不访问类的情况下从序列化中排除属性

MaT*_*MaT 4 .net c# json json.net

我试图使用Json.NET序列化一个类.这就是我现在所做的.

public class AClass
{
    // I don't have access to BClass
    public BClass b;
}

AClass a = new AClass();
JsonConvert.SerializeObject(a);
Run Code Online (Sandbox Code Playgroud)

我无权访问BClass.我想序列化我的AClass但我不想序列化所有属性BClass,只有其中一些属性.

我怎样才能做到这一点 ?

Che*_*hen 9

您可以使用自定义ContractResolver,此库将使其更容易构建.

var propertiesContractResolver = new PropertiesContractResolver();
propertiesContractResolver.ExcludeProperties.Add("BClass.Id");
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = propertiesContractResolver;
JsonConvert.SerializeObject(a, serializerSettings);
Run Code Online (Sandbox Code Playgroud)