C#使用对象序列化类库MessasgePack

MessagePack是一种高效二进制序列化格式。可以在多种语言中进行快速数据交换,比如JSON格式等。它比Json更加小巧,更加高效,可以用于一些结构化数据存储 ,非常适合适用于消息总线,MemoryCache等对序列化要求比较高的场合。

MessagePack基本上被大多数主流语言支持,因此用它来作为教程间交换的消息序列化也是一种不错的方式,本文这里简单的介绍一下如何在.Net 中使用MessagePack。

首先安装MessagePack和MessagePackAnalyzer的Nuget包:

Install-Package MessagePack
Install-Package MessagePackAnalyzer

其中MessagePackAnalyzer是可选的,但它可以帮助检查序列化标记的正确性,还是非常有用的。

如下就是一个简单的示例,非常简单,我就不多介绍了。

// mark MessagePackObjectAttribute
[MessagePackObject]
public class MyClass
{
  // Key is serialization index, it is important for versioning.
  [Key(0)]
  public int Age { get; set; }

  [Key(1)]
  public string FirstName { get; set; }

  [Key(2)]
  public string LastName { get; set; }

  // public members and does not serialize target, mark IgnoreMemberttribute
  [IgnoreMember]
  public string FullName { get { return FirstName + LastName; } }
}

class Program
{
  static void Main(string[] args)
  {
      var mc = new MyClass
      {
          Age = 99,
          FirstName = "hoge",
          LastName = "huga",
      };

      // call Serialize/Deserialize, that's all.
      var bytes = MessagePackSerializer.Serialize(mc);
      var mc2 = MessagePackSerializer.Deserialize<MyClass>(bytes);

      // you can dump msgpack binary to human readable json.
      // In default, MeesagePack for C# reduce property name information.
      // [99,"hoge","huga"]
      var json = MessagePackSerializer.ToJson(bytes);
      Console.WriteLine(json);
  }
}

关于C#使用对象序列化类库MessasgePack的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程宝库

OPC Server服务器服务器的开发比较繁琐,本示例采用C#提供了一种简单快速实现OPCServer的方法,已经在工程项目中应用,希望对大家有用。 1、需要的DLL首选将需要dll ...