Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能

1b630c2c069bd306c454cfb61e7f0828.gif

33a215630c3d0262a28e6fb12a8712a1.png

前言

在使用PRISM+WPF开发项目的过程中,需要使用AutoMapper实现对象-对象的映射功能。无奈PRISM没有相关对AutoMapper相关的类库,于是转换一下思想,在nuget 中存在有关使用Microsoft.Extensions.DependencyInjection来实现AutoMapper的依赖注入方法,那能不能将DryIocMicrosoft.Extensions.DependencyInjection一起使用来实现依赖注入的功能呢?通过在网上搜索,发现痕迹大佬实现了【WPF Prism8.0中注册Nlog日志服务】。文章地址:https://www.cnblogs.com/zh7791/p/15162484.html

依据痕迹大佬的文章引导,在PRISM+WPF项目中实现了对AutoMapper的依赖注入功能。

一、新建PRISM框架的项目

a00e21c4daf6f2f157e739743c335fea.png

二、选择注入框架的时候一定要选择DryIoc框架。

0d6d5c5d8b91e15df74f9453bb008b07.png

三、添加nuget包

需要在主项目中添加以下四个nuget包,包名如下:

DryIoc.Microsoft.DependencyInjection
Microsoft.Extensions.DependencyInjection
AutoMapper
AutoMapper.Extensions.Microsoft.DependencyInjection

我在项目中添加的版本如下图所示:3e4e464cd17bf3a52c7fb6825d095349.png

四、在App.xaml.cs中添加函数:CreateContainerExtension

具体实现如下:ClassAClassB是在其他项目中定义的两个类。

/// <summary>
/// Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension" /> used by Prism.
/// </summary>
/// <returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension" />.</returns>
protected override IContainerExtension CreateContainerExtension()
{var serviceCollection = new ServiceCollection();serviceCollection.AddAutoMapper(cfg =>{cfg.CreateMap<ClassA,ClassB>();});return new DryIocContainerExtension(new Container(CreateContainerRules()).WithDependencyInjectionAdapter(serviceCollection));
}

这样就可以了。在需要使用AutoMapper的项目中需要添加上AutoMapper的nuget引用。然后就可以在具体的类中使用依赖注入方式使用AutoMapper功能了。上一张调试截图具体看一下吧:红色框中就是依赖注入的功能。8de49581ffa27e157c9a38738295fd24.png

题外话

添加上以上功能之后,如果还想引入其他类库实现依赖注入功能,只需要在此函数中添加实现依赖注入的代码即可。

5026f774b4fc0822fea2a4cdae157396.png

f27eb74cae7e9c5018f87c4ec563cfb8.png

— END —

「公众号推荐」

回复:「rdm」 获取Redis Desktop Manager版的安装包

回复:「redis」 获取5.0.9版的Windows安装包(exe)

回复:「ca」 获取  截图、GIF等工具三件套,便携版和安装版全部包括

「加号主回复”入群“」即可加入群聊

70251f7a17fef060edc9e0b8d59f7965.png


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机房真是】。。。各种蛋疼。。。

渣渣。。。呵呵。。。预流推进什么的。。。呵呵。。。。渣渣。。。渣渣。。。、、走了。。。 转载于:https://www.cnblogs.com/Aoi3x/archive/2011/09/07/2645360.html

webSocket原理及其案例

常见的消息推送方式 1&#xff1a;轮询方式 浏览器以指定的时间间隔向服务器发出HTTP请求&#xff0c;服务器实现试试返回数据给浏览器 缺点&#xff1a;数据有延时、服务器压力较大。 2&#xff1a;长轮询 浏览器发出ajax&#xff08;异步&#xff09;请求&#xff0c;服…

这是啥?也太秀了吧?

1 请坐下2 这是什么愿望&#xff0c;感觉老天都看不下去了&#xff01;3 像极了手机落在上铺的你&#xff01;4 真正智慧家居&#xff0c;免通电。5 你以为它是土豆&#xff0c;其实。。6 葫芦不一定叫葫芦葫芦有各种奇奇怪怪的形状和名字7 我发光去了&#xff01;你点的每个赞…

php七牛分片上传_利用七牛的php SDK分片上传时如何处理Notify?

我的代码如下&#xff0c;有填写相应的Rio_PutExtra&#xff0c;但是进度貌似没有输出来&#xff1f;请问是哪里写的不对么&#xff1f;…function upload($bucket, $key, $file, $type"file"){$qiniu_key "…AK…";$qiniu_sec "…SK…";Qiniu…

python课程思路_学习python课程第二十六天

一. 传输层在上述三层协议中我们,ip协议帮我们定位到子网络. mac地址帮我们定位到一台计算机,并与其通讯,但本质上,计算机的通讯是为了应用程序能够通讯,而一台计算机上不可能运行一个应用程序问题:就像我们同时运行QQ软件和微信软件, 当计算机收到一个数据包时, 需要知道这…

爱数应用容灾部署方案三

级联复制的异地容灾方案部署 爱数应用容灾部署方案可在异地部署远程容灾站点实现远程应用容灾方案&#xff0c;采用级联复制模型&#xff0c;在本地和远程分别部署容灾站点&#xff0c;克服实时复制对带宽延迟较高的缺点&#xff0c;获得最佳的容灾效果。并且可根据用户的网络和…

c# 按位与,按位或

最近在园子里看到了这篇文章&#xff0c;看完这篇会有意外收获&#xff1a;C#枚举高级战术https://mp.weixin.qq.com/s/yipaL6Acil-uxq_bDDgdyg想起了很久之前的自己的一篇总结&#xff0c;特地找出来------在工作中遇到按位或组合权限串。一直不是特别明白。今天终于花了半个下…

poj3160

http://poj.org/problem?id3160 题意读懂是关键&#xff0c;he chould choose to enter and give out a gift and hear the words from the recipient, or bypass the room in silence.通过这句话知道当收礼者给予的反应是负值时可以不加&#xff0c;flymouse decided to choo…

30张不明觉厉的照片,看几遍终于看懂了

全世界只有3.14 % 的人关注了爆炸吧知识网络上很多照片&#xff0c;虽然没经过PS&#xff0c;第一眼还是会觉得诡异。仔细看看才发现....哇噢&#xff01;总觉得她的头上有一撮尖尖的毛&#xff1f;狗狗怎么做得出这个表情&#xff1f;震惊&#xff01;发现没脖子的长颈鹿&…

域名服务器(DNS)工作原理

域名服务器工作原理 引言 只要您在互联网上发送电子邮件或浏览Web&#xff0c;您就会用到域名服务器&#xff0c;而您自己可能都不知道您在使用它们。域名服务器&#xff08;即DNS&#xff09;是互联网的相当重要且完全隐藏的部分&#xff0c;并且很神奇。域名服务器系统在全球…

排序集合的一个小坑

原来一直用SortList&#xff0c;SortedDictionary来作为键值对存储的排序集合来用&#xff0c;心中就默认是以key按ascall排序来存放的&#xff0c;在之前的案例中也没有出现问题&#xff0c;在最近一个demo中&#xff0c;打破了原来的自以为是的认识&#xff0c;因为在key中不…

python distplot 图_Python可视化23 |seaborn.distplot公司单变量分布图(直方图|核密度图),23seaborndistplot...

本文介绍seaborn.distplot绘制单变量分布图&#xff1b;之前文章介绍的核密度图(kernel density estimate (KDE))以及二者结合图。目录本文内容概要直方图核密度图直方图结合核密度图1、seaborn.distplotseaborn.distplot(a, binsNone,histTrue,kdeTrue,rugFalse, fitNone, his…

绘制矩形php,PHP_php绘制一个矩形的方法,本文实例讲述了php绘制一个矩 - phpStudy...

php绘制一个矩形的方法本文实例讲述了php绘制一个矩形的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;//1、创建画布$im imagecreatetruecolor(300,200);//新建一个真彩色图像&#xff0c;默认背景是黑色&#xff0c;返回图像标识符。另外还有一个函数 imagecrea…

爱是天时地利的迷信

1 别人撒娇你撒娇2 据说套着这个白袋子晒鞋鞋就不会发黄了。。3 蚂蚁&#xff1a;为什么要欺负我&#xff01;4 这是天空的心电图吗5 有回应的喜欢真好 6 随主人这事儿原来是真的…7 被别人喜欢时的心理活动图自回忆专用小马甲你点的每个赞&#xff0c;我都认真当成了喜欢

如何做到 byte[] 和 十六进制 互转?

咨询区 alextansc&#xff1a;请问我如何实现将 byte[] 和 十六进制的string 进行互转&#xff1f;回答区 balrob&#xff1a;如果你的程序是基于 .NET5 的&#xff0c;可以使用 Convert 下新增的两个方法 ToHexString 和 FromHexString &#xff0c;参考下面两个方法的定义。/…

转载 Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget

当图片过大&#xff0c;或图片数量较多时使用BitmapFactory解码图片会出java.lang.OutOfMemoryError: bitmap size exceeds VM budget&#xff0c;要想正常使用则需分配更少的内存&#xff0c;具体的解决办法是修改采样值BitmapFactory.Options.inSampleSize&#xff0c;例如&a…

Juniper Firewall多进单出配制实例

Technorati 标签: juniper,多进单出,配置实例,firewallJuniper firewall多進單出配置。想法是這樣的用一台firewall將這幾條ISP線路都接入&#xff0c;再通過一個trunk口出來&#xff0c;通過一台L2 switch劃分出幾個VLAN&#xff0c;分別對應不同的ISP線路。這樣做的好處就不多…

php js 复选框选中,为每个选中的复选框显示相同的一组问题。 (PHP和JS / Jquery)...

你可以这样做&#xff0c;它可以帮助你......HTMLfunction show_ques() {var i $(this).attr(id).substr(-1);if ($(this).is(":checked")) {//get total count of question listvar nQue $("#quelist").find("div[class^que]").length;var is…

刷题≠学好数学,近百位名校名师告诉你,数学是怎么学好的?

▲ 点击查看 数学是个神奇的科目&#xff0c;它存在着一种“梯次掉队”的现象。不是说你低年级的知识学好了&#xff0c;高年级的知识就一定能学好。相信大家都有这种体会&#xff1a;一二年级孩子成绩不相上下&#xff0c;但到三四年级的时候&#xff0c;有一批学生的数学成绩…

android 系统之ContentProvider

基于上一篇的数据库操作&#xff0c;又写了一个ContentProvider的示例。把SQLiter 的数据提供出去供别的项目进行访问。 这一篇的代码要求熟悉SQLiter 的API. 首先&#xff0c;我们编写一个类extents ContentProvider &#xff0c;重写他的方法。 URI 在http 中我们称为统一资源…