예제 #1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            SystemCertificate           systemCertificate = (SystemCertificate)value;
            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("SystemID", systemCertificate.SystemId);
            dic.Add("Certificate", Convert.ToBase64String(systemCertificate.Certificate));
            serializer.Serialize(writer, dic);
        }
예제 #2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var dic = serializer.Deserialize <Dictionary <string, string> >(reader);
            SystemCertificate systemCertificate = new SystemCertificate();

            systemCertificate.SystemId    = dic["SystemID"];
            systemCertificate.Certificate = Convert.FromBase64String(dic["Certificate"]);
            return(systemCertificate);
        }
예제 #3
0
    public static void Test()
    {
        SystemCertificate cert = new SystemCertificate
        {
            SystemId    = "123",
            Certificate = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
        };
        JsonSerializer js = new JsonSerializer();

        js.Converters.Add(new ResourceConverterGen2());
        StringBuilder sb = new StringBuilder();
        StringWriter  sw = new StringWriter(sb);

        js.Serialize(sw, cert);
        Console.WriteLine(sb.ToString());
        StringReader      sr    = new StringReader(sb.ToString());
        SystemCertificate cert2 = (SystemCertificate)js.Deserialize(sr, typeof(SystemCertificate));

        Console.WriteLine("Id={0},Cert={1}", cert2.SystemId, string.Join(",", cert2.Certificate.Select(b => string.Format("{0:X2}", (int)b))));
    }