1 回答

TA貢獻1963條經驗 獲得超6個贊
您可以使用自定義ContractResolver
來執行您想要的操作:
class NonNullablePropertiesRequiredResolver : DefaultContractResolver
{
? ? protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
? ? {
? ? ? ? JsonProperty prop = base.CreateProperty(member, memberSerialization);
? ? ? ? Type propType = prop.PropertyType;
? ? ? ? if (propType.IsValueType && !(propType.IsGenericType && propType.GetGenericTypeDefinition() == typeof(Nullable<>)))
? ? ? ? {
? ? ? ? ? ? prop.Required = Required.Always;
? ? ? ? }
? ? ? ? return prop;
? ? }
}
反序列化時將解析器應用到您的應用程序中JsonSerializerSettings,如下所示:
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ContractResolver = new NonNullablePropertiesRequiredResolver();
MyParameters parms = JsonConvert.DeserializeObject<MyParameters>(json, settings);
工作演示: https:?//dotnetfiddle.net/t56U2a
- 1 回答
- 0 關注
- 132 瀏覽
添加回答
舉報