How do I Serialize object to json using json.net which contains an image property

Viewed 7256

I have an object with a number of public properties where one is of type image. I am trying to serialise this using json.net and assume that I will need to base64 encode this and serialise the resultant string. I have tried with the BinaryConverter against the property without success below

public class Person
{
    public string name { get; set; }

    public int age { get; set; }

    [JsonConverter(typeof(BinaryConverter))]
    public Image photo { get; set; }

    public string ToJson()
    {
        return JsonConvert.SerializeObject(this);
    }
}

When called with this test code...

var p = new Person();
p.name = "John Doe";
p.age = 99;
p.photo = Image.FromFile(@"dea4007a-c812-41e9-b09a-c7793c6e853d.jpg");

var json = p.ToJson();
Console.WriteLine(json);
Console.ReadKey();

I get an exception "Unexpected value type when writing binary". Any help would be very helpful as I have been searching the web for a while now without success.

2 Answers
Related