using Newtonsoft.Json.Serialization;
public static void Main()
WritableProperty = "Quux"
JsonSerializerSettings settings = new JsonSerializerSettings
ContractResolver = CustomContractResolver.Instance,
Formatting = Formatting.Indented
string json = JsonConvert.SerializeObject(ex, settings);
public class CustomContractResolver : DefaultContractResolver
public static readonly CustomContractResolver Instance = new CustomContractResolver();
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
JsonProperty property = base.CreateProperty(member, memberSerialization);
if (!property.Writable && member.GetCustomAttribute<JsonPropertyAttribute>() == null)
public string ThisPropertyHasToBeSerialized
public string ThisPropertyHasToBeSkipped
public string WritableProperty { get; set; }