[英]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.