最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用AutoMapper實現類映射詳解

 更新時間:2024年01月26日 08:33:34   作者:rjcql  
AutoMapper是一個用于.NET中簡化類之間的映射的擴展庫,這篇文章主要介紹了C#如何使用AutoMapper實現類映射,感興趣的小伙伴可以跟隨小編一起學習一下

寫在前面

AutoMapper是一個用于.NET中簡化類之間的映射的擴展庫;可以在執(zhí)行對象映射的過程,省去的繁瑣轉換代碼,實現了對DTO的快速裝配,有效的減少了代碼量。

通過NuGet安裝,AutoMapper, 由于本例用到了DI,所以需要順便安裝一下 AutoMapper.Extensions.Microsoft.DependencyInjection

代碼實現

using AutoMapper;
using AutoMapper.Internal;
using Microsoft.Extensions.DependencyInjection; 
 
IServiceCollection services = new ServiceCollection();
services.AddTransient<ISomeService>(sp => new FooService(5));
services.AddAutoMapper(typeof(Source));
var provider = services.BuildServiceProvider();
using (var scope = provider.CreateScope())
{
    var mapper = scope.ServiceProvider.GetRequiredService<IMapper>();
 
    foreach (var typeMap in mapper.ConfigurationProvider.Internal().GetAllTypeMaps())
    {
        Console.WriteLine($"{typeMap.SourceType.Name} -> {typeMap.DestinationType.Name}");
    }
 
    foreach (var service in services)
    {
        Console.WriteLine(service.ServiceType + " - " + service.ImplementationType);
    }
 
    var dest = mapper.Map<Dest2>(new Source2());
    Console.WriteLine(dest!.ResolvedValue);
}
 
Console.ReadKey();
 
public class Source
{
    public int Id { get; set; }
 
    public string Name { get; set; }
}
 
public class Dest
{
    public int ResolvedValue { get; set; }
 
}
 
public class Source2
{
    public string Name { get; set; }
 
    public int ResolvedValue { get; set; }
}
 
public class Dest2
{
    public int ResolvedValue { get; set; }
}
 
/// <summary>
/// 映射表1
/// </summary>
public class Profile1 : Profile
{
    public Profile1()
    {
        CreateMap<Source, Dest>();
    }
}
 
/// <summary>
/// 映射表1
/// </summary>
public class Profile2 : Profile
{
    public Profile2()
    {
        CreateMap<Source2, Dest2>()
            .ForMember(d => d.ResolvedValue, opt => opt.MapFrom<DependencyResolver>());
    }
}
 
public class DependencyResolver : IValueResolver<object, object, int>
{
    private readonly ISomeService _service;
 
    public DependencyResolver(ISomeService service)
    {
        _service = service;
    }
 
    public int Resolve(object source, object destination, int destMember, ResolutionContext context)
    {
        return _service.Modify(destMember);
    }
}
 
public interface ISomeService
{
    int Modify(int value);
}
 
public class FooService : ISomeService
{
    private readonly int _value;
 
    public FooService(int value)
    {
        _value = value;
    }
 
    public int Modify(int value) => value + _value;
}

調用示例

到此這篇關于C#使用AutoMapper實現類映射詳解的文章就介紹到這了,更多相關C# AutoMapper類映射內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#環(huán)形隊列的實現方法詳解

    C#環(huán)形隊列的實現方法詳解

    這篇文章先是簡單的給大家介紹了什么是環(huán)形隊列和環(huán)形隊列的優(yōu)點,然后通過實例代碼給大家介紹C#如何實現環(huán)形隊列,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • C#入門之結構類型Struct

    C#入門之結構類型Struct

    這篇文章介紹了C#入門之結構類型Struct,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#固定大小緩沖區(qū)及使用指針復制數據詳解

    C#固定大小緩沖區(qū)及使用指針復制數據詳解

    這篇文章主要為大家介紹了C#固定大小緩沖區(qū)及使用指針復制數據詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 基于WPF實現元旦祝福動畫效果

    基于WPF實現元旦祝福動畫效果

    本文介紹了如何在WPF中設計并實現一個元旦祝福動畫,包括節(jié)日主題色彩、核心動畫元素、交互體驗等,通過XAML和C#代碼,展示了如何使用WPF動畫系統、3D圖形和視覺效果,實現漸變顯示、雪花飄落、煙花綻放等動畫效果,感興趣的小伙伴可以動手嘗試一下
    2026-01-01
  • WPF實現樹形表格控件的示例代碼

    WPF實現樹形表格控件的示例代碼

    這篇文章主要介紹了如何利用WPF框架實現樹形表格控件,該控件不僅能夠有效地展示復雜的層級數據,還能夠提供豐富的個性化定制選項,感興趣的可以了解下
    2024-04-04
  • Winform應用程序如何使用自定義的鼠標圖片

    Winform應用程序如何使用自定義的鼠標圖片

    這篇文章主要介紹了Winform應用程序如何使用自定義的鼠標圖片,在window系統中,自帶的鼠標外觀可能看起來比較小,因此我們需要使用自己的鼠標圖片外觀
    2020-11-11
  • C#通過Python.NET調用Python?pyd擴展模塊的實踐指南

    C#通過Python.NET調用Python?pyd擴展模塊的實踐指南

    在工業(yè)軟件與算法融合的場景中,經常需要將 Python 生態(tài)的高性能算法庫集成到 C# 桌面或后端應用中,下面我們就來看看在C#應用中調用Python編譯模塊(pyd)有哪些技術方案吧
    2026-05-05
  • C# 時間和日期的處理方法

    C# 時間和日期的處理方法

    這篇文章主要介紹了C#時間和日期的處理,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-06-06
  • c#用Treeview實現FolderBrowerDialog 和動態(tài)獲取系統圖標(運用了Win32 dll類庫)

    c#用Treeview實現FolderBrowerDialog 和動態(tài)獲取系統圖標(運用了Win32 

    其實,FolderBrowerDialog 很好用呢,有木有啊親,反正我特別的喜歡,微軟大哥把這個瀏覽文件夾的東東封裝的多好呀
    2013-03-03
  • DevExpress實現禁用TreeListNode CheckBox的方法

    DevExpress實現禁用TreeListNode CheckBox的方法

    這篇文章主要介紹了DevExpress實現禁用TreeListNode CheckBox的方法,在項目開發(fā)中有應用價值,需要的朋友可以參考下
    2014-08-08

最新評論

沙雅县| 大港区| 黑山县| 石阡县| 和顺县| 喜德县| 阿图什市| 焦作市| 房产| 奉节县| 万山特区| 玉树县| 公主岭市| 闽侯县| 黑河市| 灵宝市| 南江县| 洛阳市| 宝兴县| 邹平县| 玉溪市| 德保县| 旺苍县| 团风县| 凌海市| 屏东市| 板桥市| 普格县| 濉溪县| 荃湾区| 禄劝| 宜章县| 海南省| 宁化县| 峨边| 澄迈县| 黑河市| 札达县| 凌云县| 德兴市| 乌苏市|