EasyNetQ中使用自定義的ISerializer

         最近在使用EasyNetQ時,遇到一個問題:c++項目組發送的消息數據不是Json數據,而是自定義的數據格式(各字段+‘|’鏈接成一個字符串),EasyNetQ中消費消息接收的都是強類型,沒辦法直接消費一個字符串做爲一個消息。沒辦法只好研究EasyNetQ的源碼,發現有一個ISerializer接口,只要實現一個自定義的Serializer並注入便可。c++

 

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的時候注入序列化器:spa

var bus = RabbitHutch.CreateBus("host", serviceRegister => serviceRegister.Register<ISerializer, GameLogSerializer>());
相關文章
相關標籤/搜索