C#泛型扩展方法问题

问题描述 投票:0回答:1

因此,我对编写通用转换模型扩展还相当陌生,我试图从模型过渡到可以正常工作的天蓝色服务总线消息。但我现在正尝试从消息到指定类型的反向操作。

扩展方法当前看起来像这样。

    public static class ModelExtensions
    {
        public static Message ToMessage<TModel>(this TModel model) =>
            new Message(
                Encoding.UTF8.GetBytes(
                    JsonConvert.SerializeObject(model)));

        public static TType FromMessage<TModel, TType>(this TModel model)
        {
            return JsonConvert.DeserializeObject<TType>(JsonConvert.SerializeObject(model));
        }
    }

是否有一种方法可以根据扩展方法另一侧指定的内容,对许多类型做我刚做的事情的反转,例如,如果在外部,我做了类似的事情。

message.FromMessage()

任何帮助,提前致谢,克里斯。

c# asp.net .net generics model
1个回答
2
投票

应该简单

public static TModel FromMessage<TModel>(this Message message)
  => JsonConvert.DeserializeObject<TModel>(Encoding.UTF8.GetString(message.Body));

用法

var result = message.FromMessage<MyLovelyHorse>()
© www.soinside.com 2019 - 2024. All rights reserved.