簡體   English   中英

ExpressMapper,.NET Core和依賴注入

[英]ExpressMapper, .NET Core, and Dependency Injection

我正在評估.NET Core Web API的不同的對象到對象映射器。 我的要求之一是使用.NET Core內置的依賴注入容器。 我已經測試了Automapper,該測試成功了,但是我對嘗試ExpressMapper感興趣。 http://www.expressmapper.org/配置的示例非常稀疏。

我從Github頁面上看到它似乎已准備好.netcore。 https://github.com/fluentsprings/ExpressMapper

如何在startup.cs中配置ExpressMapper,以便可以將DI直接輸入到類似於Automapper的控制器中?

如果有人快速了解ExpressMapper和.NET Core的startup.cs示例,那就太好了。 (順便說一句,如果有人使用他們推薦的其他具有.NET Core的競爭性映射器工具,那也會有所幫助)。

使用Automapper,我可以添加MappingProfile類,然后執行類似的操作

啟動文件

 private MapperConfiguration _mapperConfiguration { get; set; }
_mapperConfiguration = new MapperConfiguration(cfg =>
        {
            cfg.AddProfile(new MappingProfile());
        });

配置服務

 services.AddSingleton<IMapper>(sp => _mapperConfiguration.CreateMapper());

控制者

 public ValuesController(IMapper mapper)
    {
        _mapper = mapper;
    }

與Expressmapper相同,您可以使用Mapper靜態類使用的IMappingServiceProvider接口和MappingServiceProvider實現。 請看下面的示例,這是實際查看它的鏈接

public class Program
{
    public static void Main()
    {

        var container = new Container();

        container.Register<IMappingServiceProvider, MappingServiceProvider>();

        var mapper = container.GetInstance<IMappingServiceProvider>();

        var result = mapper.Map<Test, TestResponse>(new Test{Name = "Just a test"});

        Console.WriteLine("result is {0} type", result as TestResponse);
        Console.WriteLine("result.Name = {0}", result.Name);
    }

    public class Test{
        public string Name {get;set;}
    }

    public class TestResponse{
        public string Name {get;set;}
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM