gpt4 book ai didi

c# - 如何使用automapper解析绝对url

转载 作者:行者123 更新时间:2023-12-04 17:56:47 29 4
gpt4 key购买 nike

我想使用 automapper 使用 Automappers 配置文件创建绝对 url。这样做的最佳做法是什么?

  • 我的配置文件在启动期间自动配置。
  • 如果可能有帮助,我正在使用 Ioc 容器。

    SourceToDestinationProfile : Profile
    {
    public SourceToDestinationProfile()
    {
    var map = CreateMap<Source, Destination>();

    map.ForMember(dst => dst.MyAbsoluteUrl, opt => opt.MapFrom(src => "http://www.thisiswhatiwant.com/" + src.MyRelativeUrl));
    ...
    }
    }

在某种程度上,我想动态地获取请求基 url(“http://www.thisiswhatiwant.com/”),以便可以将它与我的 relativeurl 放在一起。我知道一种方法,但它并不漂亮,即不是最好的方法。

最佳答案

不知道这是不是你要找的:

public class Source
{
public string Value1 { get; set; }

public string Value2 { get; set; }
}

public class Destination
{
public string Value1 { get; set; }

public string Value2 { get; set; }
}

public class ObjectResolver : IMemberValueResolver<Source, Destination, string, string>
{
public string Resolve(Source s, Destination d, string source, string dest, ResolutionContext context)
{
return (string)context.Items["domainUrl"] + source;
}
}

public class Program
{
public void Main()
{
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Destination>()
.ForMember(o => o.Value1, opt => opt.ResolveUsing<ObjectResolver, string>(m=>m.Value1));
});

var mapper = config.CreateMapper();
Source sr = new Source();
sr.Value1 = "SourceValue1";
Destination de = new Destination();
de.Value1 = "dstvalue1";
mapper.Map(sr, de, opt => opt.Items["domainUrl"] = "http://test.com/");
}
}

关于c# - 如何使用automapper解析绝对url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39814657/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com