using Newtonsoft.Json.Serialization;
public struct SubEntity {
public string type { get; set; }
public string type { get; set; }
public SubEntity subEntity { get; set; }
public class StrictContractResolver : DefaultContractResolver
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
var property = base.CreateProperty(member, memberSerialization);
property.ShouldDeserialize = instance =>
property.ShouldSerialize = instance =>
var value = property.ValueProvider.GetValue(instance);
throw new JsonSerializationException("Property {property.PropertyName} has a null value.");
public static void Main()
var settings = new JsonSerializerSettings
ContractResolver = new StrictContractResolver(),
MissingMemberHandling = MissingMemberHandling.Error
var serializedEntity = @"{""type"": null}";
var entity = JsonConvert.DeserializeObject<Entity>(serializedEntity, settings);
Console.WriteLine(entity.type.ToString());