繁体   English   中英

C# 泛型扩展方法问题

[英]C# Generics Extension Method Issues

所以我对编写通用转换模型扩展还很陌生,我试图从模型转到按预期工作的天蓝色服务总线消息。 但我现在正试图做相反的事情,它可以从消息到指定类型。

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

    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()

任何帮助将不胜感激,提前致谢,克里斯。

应该很简单

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

用法

var result = message.FromMessage<MyLovelyHorse>()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM