当前位置: 首页 > news >正文

20251027 Prism.Unity依赖注入Demo

1.Nuget包安装

2.代码示例:

using System.ComponentModel;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace ContainWPF
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{IContainerProvider containerProvider;public MainWindow() : this(new UnityContainerExtension()){}public MainWindow(IContainerProvider containerProvider){IContainerRegistry containerRegistry = (IContainerRegistry)containerProvider;this.containerProvider = containerProvider;InitializeComponent();containerRegistry.RegisterSingleton<IManage_Main, Manage_Main>();containerRegistry.RegisterSingleton<Initial>();  // 注册 Initial 类}private void Window_Loaded(object sender, RoutedEventArgs e){// 通过容器解析 Initial 类并调用它的方法var initial = containerProvider.Resolve<Initial>();string shi=initial.StartWork();MessageBox.Show($"{shi}");}}public class AppBootstrapper : PrismApplication{// 注册应用程序的依赖项protected override void RegisterTypes(IContainerRegistry containerRegistry){// 使用 Unity 容器注册 IManage_Main 接口和它的实现类 Manage_MaincontainerRegistry.Register<IManage_Main, Manage_Main>();// 通过 Unity 容器解析 Initial 类的实例containerRegistry.Register<Initial>();}// 设置应用程序视图protected override void OnInitialized(){// 使用 Unity 容器解析 Initial 类的实例,并调用 StartWork 方法var initial = Container.Resolve<Initial>();initial.StartWork();  // 调用 StartWork 方法,实际上是调用 IManage_Main 的 DoWork()}protected override System.Windows.Window CreateShell(){throw new NotImplementedException();}}public class Initial{private readonly IManage_Main manage_Main;// 通过构造函数注入 IManage_Mainpublic Initial(IManage_Main manage_Main){this.manage_Main = manage_Main;}// 调用 DoWork 方法public string StartWork(){return manage_Main.RetureModelNameStr();}}public interface IManage_Main{string RetureModelNameStr();}public class Manage_Main : IManage_Main{public string RetureModelNameStr(){return ("Manage_Main  Model");}}
}

http://www.dtcms.com/a/536887.html

相关文章:

  • MES系统:论工单计划在智能制造中的核心串联作用​
  • 【C语言】程序控制结构
  • 厦门做网站哪家公司好非交互式网站可以做商城吗
  • OpenSSL3.5.2实现SM3数据摘要生成
  • 现代机器人学习入门:一份来自Hugging Face与牛津大学的综合教程开源SOTA资源库
  • 2D SLAM 主流算法推荐汇总和扫地机应用场景
  • 运维实战:SSL 证书故障避坑指南(精简版)
  • google网站管理员中心wordpress 字号 插件
  • 南通智能模板建站群晖wordpress安装
  • 网站建设时图片和文字北京网站定制报价
  • YOLOv5核心代码深度解析
  • SELinux 安全机制
  • 爱奇艺的网站是用什么做的网站tdk建设
  • 网站名是域名吗浙江华企 做网站怎么样
  • 基于python的化妆品推荐系统
  • 深圳网站的公司注册公司流程及费用查询
  • C++仿Muduo库Server服务器模块实现 基于Reactor模式的高性
  • 对IDC(数据中心)运维了解
  • Hyperopt 强大的分布式参数优化框架全解析
  • 网站都必须要备案吗建设一个视频网站首页
  • 前端页面连接后端fastapi实现模型本地部署和open ai接入
  • 中国空间站设计在轨飞行几年旅游网站建设ppt模板下载
  • HR4985微特步进电机驱动器:便捷与高效的完美融合
  • 广州外贸网站制作报名小程序怎么制作
  • 采用 Trie 树结合 RoaringBitmap 技术,构建高效的子串倒排索引
  • 网站建设分工明细表北京快三是官方的吗
  • JMeter:一个简单的测试计划怎么做?
  • VR仿真工业培训软件怎么用?燃气管道仿真实训案例解析
  • wordpress菜单分列顺义网站优化
  • 免费域名的网站九洲建设app