view Test/RewritingTest/MessagepackTest.cs @ 45:98ee1ee1efb7

error message is change
author riono <e165729@ie.u-ryukyu.ac.jp>
date Tue, 30 Nov 2021 19:34:24 +0900
parents 0cd765be9693
children
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.Linq;
using Christie_net.datagear;
using Christie_net.datagear.dg;
using Christie_net.Test.Example.RemoteTake;
using MessagePack;

namespace Christie_net {
[MessagePackObject]
public class MessagepackTest {

    [Key("key")]
    public string key;

    [Key("foo")]
    public int foo;

    [Key("data")]
    public byte[] data;

    public MessagepackTest(string key, int foo, byte[] data) {
        this.key = key;
        this.foo = foo;
        this.data = data;
    }

    public static void Main() {
        RTCommand cmd = new RTCommand("line", "cmd", 12);
        
        byte[] serializeData = MessagePackSerializer.Serialize(cmd);
        var message = new MessagepackTest("fuga", 10, serializeData);


        byte[] slie = MessagePackSerializer.Serialize(message);

        var desli = MessagePackSerializer.Deserialize<MessagepackTest>(slie);

        Type dataTypes = typeof(RTCommand);
        var args = new object[] {"line", "cmd", 12};

        var deseriData = MessagePackSerializer.Deserialize<object>(desli.data);
        
        Dictionary<dynamic,dynamic> test = (Dictionary<dynamic, dynamic>) deseriData;
        List<object> array = new List<object>();
        foreach (var VARIABLE in test) {
            array.Add(VARIABLE.Value);
            
        }

        object[] convertArray = array.ToArray();


        var instance = Activator.CreateInstance(dataTypes, convertArray);

        Console.WriteLine("varl;" + instance.GetType());

        // byte[] bytes = MessagePackSerializer.Serialize(message);
        // MessagepackTest mes = MessagePackSerializer.Deserialize<MessagepackTest>(bytes);
        //
        //
        // int data = MessagePackSerializer.Deserialize<int>(mes.data);
        //Console.WriteLine(data);
    }
}


// public class SerializeObj <T> {
//     
//     public byte[] SerializeFunc(T data) {
//         return MessagePackSerializer.Serialize(data);
//     }
//
//     public object DeserializeFunc(byte[] data) {
//         return MessagePackSerializer.Deserialize<T>(data);
//     }
// }
}