using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
public class NoConverter : JsonConverter
public override bool CanConvert(Type objectType)
throw new NotImplementedException();
public override bool CanRead { get { return false; } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException();
public override bool CanWrite { get { return false; } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();
public enum Foo { A, B, C }
[JsonConverter(typeof(NoConverter))]
public enum FooAlwaysAsInteger { A, B, C }
[JsonConverter(typeof(NoConverter))]
public Foo FooAsInteger { get; set; }
public Foo FooAsString { get; set; }
public FooAlwaysAsInteger Foo2AlwaysAsInteger { get; set; }
public static void Main()
var root = new RootObject { FooAsInteger = Foo.B, FooAsString = Foo.B, Foo2AlwaysAsInteger = FooAlwaysAsInteger.C };
var json = JsonConvert.SerializeObject(root, Formatting.Indented, new StringEnumConverter());