码迷,mamicode.com
首页 > Web开发 > 详细

EasyNetQ中使用自定义的ISerializer

时间:2018-07-04 13:35:50      阅读:506      评论:0      收藏:0      [点我收藏+]

标签:研究   sage   问题   连接   序列化   cer   color   get   消费   

         最近在使用EasyNetQ时,遇到一个问题:c++项目组发送的消息数据不是Json数据,而是自定义的数据格式(各字段+‘|’连接成一个字符串),EasyNetQ中消费消息接收的都是强类型,没办法直接消费一个字符串作为一个消息。没办法只好研究EasyNetQ的源码,发现有一个ISerializer接口,只要实现一个自定义的Serializer并注入即可。

 

public class GameLogSerializer : ISerializer
    {
        public T BytesToMessage<T>(byte[] bytes)
        {
            //实现自定义的反序列化代码
        }

        public object BytesToMessage(Type type, byte[] bytes)
        {
            //实现自定义的反序列化代码
        }

        public byte[] MessageToBytes<T>(T message) where T : class
        {
            //实现自定义的序列化代码
        }
    }

            使用Bus的时候注入序列化器:

var bus = RabbitHutch.CreateBus("host", serviceRegister => serviceRegister.Register<ISerializer, GameLogSerializer>());

 

EasyNetQ中使用自定义的ISerializer

标签:研究   sage   问题   连接   序列化   cer   color   get   消费   

原文地址:https://www.cnblogs.com/focus-lei/p/9262638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!