首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这在Prism/Unity中意味着什么:Container.Resolve <ShellPresenter>()

在 Prism 或 Unity 中,Container.Resolve 是一个用于解析依赖关系的方法。ShellPresenter 是一个待解析的类型。

在软件开发中,依赖关系是指一个类或组件在运行时需要的其他类或组件。这些依赖关系通常在程序启动时注册到依赖注入容器中。当需要使用某个类或组件时,可以从容器中解析它,容器会自动处理其依赖关系并返回一个完全初始化的实例。

在这个问答中,Container.Resolve 用于解析 ShellPresenter 类型的实例。这意味着程序需要一个已经初始化的 ShellPresenter 实例来继续执行。

在 Prism 和 Unity 这样的框架中,依赖注入容器是一个非常重要的概念。它们使用依赖注入容器来管理依赖关系,使得程序更加模块化、可测试和可维护。

总结:在 Prism 或 Unity 中,Container.Resolve<ShellPresenter>() 意味着解析一个已经初始化的 ShellPresenter 实例,以便程序能够继续执行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Prism 8.0 入门(下):Prism.Wpf 和 Prism.Unity

    Prism.Wpf 和 Prism.Unity 这篇是 Prism 8.0 入门的第二篇文章,上一篇介绍了 Prism.Core,这篇文章主要介绍 Prism.Wpf 和 Prism.Unity。...Prism.Core、Prism.Wpf 和 Prism.Unity 的依赖关系如上所示。其中 Prism.Core 实现了 MVVM 的核心功能,它是一个与平台无关的项目。...Prism.Unity 本身没几行代码,它表示为 Prism.Wpf 选择了 UnityContainer 作为 IOC 容器。...由于 Prism.Unity 依赖 Prism.Wpf,所以只需安装 Prism.Unity: Install-Package Prism.Unity -Version 8.0.0.1909 2....开发者只知道要执行的这个操作的名字,要传什么参数,拿到什么结果,至于具体由谁去执行,开发者要假装不知道(虽然很可能都是自己写的)。

    5.5K20

    .NET Core 3 WPF MVVM框架 Prism系列之命令

    在代码,我们通过using Prism.Mvvm引入继承BindableBase,因为我们要用到属性改变通知方法SetProperty,这在我们上一篇就知道了,再来我们using Prism.Commands...schemas.microsoft.com/expression/2010/interactivity" 该程序集 System.Windows.Interactivity dll是在 Expression Blend SDK的...五.创建复合命令    prism提供CompositeCommand类支持复合命令,什么是复合命令,我们可能有这种场景,一个主界面的不同子窗体都有其各自的业务,假如我们可以将上面的例子稍微改下,我们分为三个不同子窗体...目的是为了下一步通过IOC容器注册其为全局的单例接口 2.通过IOC容器注册其为单例    我们创建一个新的项目作为主窗体,用来显示子窗体和使用复合命令,关键部分代码如下: App.cs代码: using Prism.Unity...class App : PrismApplication { protected override Window CreateShell() { return Container.Resolve

    1.9K50

    你知道Unity IoC Container是如何创建对象的吗?

    Unity 2.0,微软直接将ObjectBuild(实际上是ObjectBuild的第二个版本ObjectBuild2)的绝大部分功能实现在了Unity,而EnterLib则直接建立在Unity...由此可见Unity在EnterLib以及微软其他一些开源框架(比如Software Factory)的重要地位。...之前园子里也有一些介绍EnterLib的文章,其中也不乏对Unity/ObjectBuild的介绍。虽然微软官方声称Unity是一个轻量级的IoC框架,但是并不意味着Unity会很简单。...在本篇文章,我试着换一种介绍方式:抓住Unity/ObjectBuild最本质的东西,剔除一些细枝末节,希望以一种全新的视角让读者了解Unity的本质。...在Unity,BuilderContext实现了IBuilderContext,我们不妨来看看IBuilderContext定义了些什么: 1: public interface IBuilderContext

    1.1K90

    Unity 依赖注入

    关于Ioc的框架有很多,比如astle Windsor、Unity、Spring.NET、StructureMap,我们这边使用微软提供的Unity做示例,你可以使用Nuget添加Unity,也可以引用...Microsoft.Practices.Unity.dll和Microsoft.Practices.Unity.Configuration.dll,下面我们就一步一步的学习下Unity依赖注入的详细使用...如果不明白什么是控制反转和依赖注入,请参考控制反转和依赖注入模式 下面通过一个示例来讲解Unity不同的依赖注入,现在有一家公司,这家公司有很多的员工,这些员工分别来自不同的省份,有的是浙江人,有的是四川人...("aa"); IMess ee1 = container.Resolve("aa"); Console.WriteLine("same instance?...当我们声明一个类型为ContainerControlledLifetimeManager,说明该类型就是单例,所以当我们在程序获取该类型的实例时,IOC容器会返回上次创建的实例,而不会重新创建一个实例

    1.2K80

    【翻译】Prism4:初始化Prism应用程序(上)

    什么是Bootstrapper(引导程序) bootstrapper负责初始化使用Prism类库搭建的应用程序 使用bootstrapper,你可以更方便的控制Prism类库组件与你的应用程序之间的关系...Prism类库包含一个默认的抽象基类Bootstrapper 这个类型可以与任何容器一起使用 这个类型的大多数方法都是虚方法 你可以在你的bootsrapper实现重写这些方法 引导程序执行的基本步骤如下...类库搭建的应用程序需要使用依赖注入容器 Prism支持Unity和MEF依赖注入容器 并且允许使用其他的依赖注入容器 引导程序的部分工作就是装配这个容器 并为容器注册类型 Prism类库包含UnityBootstrapper...这主要是因为框架画面依赖于服务 这些服务类似与区域主管 这些服务在框架画面显示之前被注册 关键决定 当你决定使用Prism类库 还需要做出一些额外的决定: 必须决定是使用MEF、Unity还是其他的依赖注入容器...应用程序的top-level(顶层)窗口 Shell通常是指主窗口或注页面 在这个方法的具体实现返回一个Shell的实例 在Prism应用程序 你可以创建一个Shell的实例 也可以从依赖注入容器取出

    79720

    Prism教程二: Bootstrapper

    Prism扮演这一角色的就是Bootstrapper。 Prism提供了一个抽象基类Bootstrapper,这个类里面包含了许多空的虚方法,可以重写他们添加自己的逻辑。...创建并配置依赖注入容器 Prism中使用依赖注入来管理各个组件,你可以使用任何你熟悉的容器,比如Castle,Unity等。...Prism内置了对Unity和Mef的支持,所以有这两种预定义好的Bootstrapper:UnityBootstrapper和MefBootstrapper,其中分别采用UnityContainer...所以不管使用什么样的容器,都需要提供一个实现了IServiceLocator接口的适配器,如果使用Unity要提供UnityServiceLocator,使用Mef就要提供MefServiceLocator...这样不管外部使用什么容器,内部都不需要改变。

    96720

    Prism之Bootstrapper

    Prism扮演这一角色的就是Bootstrapper。 Prism提供了一个抽象基类Bootstrapper,这个类里面包含了包含了许多空的虚方法,可以重写它们添加自己的逻辑。...创建并配置依赖注入容器 Prism中使用依赖注入来管理各个组件,你可以使用任何你熟悉的容器,比如Castle, Unity等。...Prism内置了对Unity以及Mef的支持,所以有两种预定义好的Bootstrapper: UnityBootstrapper和MefBootstrapper,其中分别采用UnityContainer...所以不管使用什么样的容器,都需要提供一个实现了IServiceLocator接口的适配器,如使用Unity要提供UnityServiceLocatorAdapter,使用Mef要提供MefServiceLocatorAdapter...这样不管外部使用什么容器,内部都不需要改变。

    59910

    一个简单的小程序演示Unity的三种依赖注入方式

    在类型A定义了3个属性B、C和D,其类型分别为接口IB、IC和ID。...其中属性B在构在函数中被初始化;属性C上应用了Microsoft.Practices.Unity.DependencyAttribute特性,意味着这是一个需要以属性注入方式被初始化的依赖属性;属性D则通过方法...Initialize初始化,该方法上应用了Microsoft.Practices.Unity.InjectionMethodAttribute,意味着这是一个注入方法会被自动调用。...在这段配置,定义了一个名称为defaultContainer的Unity容器,并在其中完成了上面定义的接口和对应实现类之间映射的类型匹配。 1: <?xml version="1.0"?...UnityConfigurationSection.SectionName); 5: configuration.Configure(container, "defaultContainer"); 6: A a = container.Resolve

    1.7K70

    使用Unity创建依赖注入依赖注入生命周期:注册、解析、销毁   注册解析销毁

    P.S:如果您想看到的是关于Unity 3D的内容,您可以轻击返回按钮了。     在前几节,您看到为什么要使用依赖注入以及依赖注入和其他解耦方法的区别。...在本章您将看到怎么样使用Unity依赖注入容器去更简单的在您的应用程序添加依赖注入框架。...在这个过程,您将看到怎样将Unity应用在实际应用程序的一些例子 依赖注入生命周期:注册、解析、销毁 在前几个章节,您看到了ManagementController类有一个构造方法期望在继续构造之前注入以后类型为实现饿了...这个例子是一个很简单的类型映射让您可以定义使用Unity容器。在后面的章节,您将看到在Unity容器中注册类型和对象的一些方法,可以适用于更复杂的情形,具有更好的灵活性。...var controller = container.Resolve(); 在这个示例,您不需要直接去实例化ManagementController,而是使用

    1.5K60

    【翻译】WPF应用程序模块化开发快速入门(使用Prism框架)【上】

    : 直接使用代码: 可以直接使用代码把模块注册到模块目录 这样你就可以咱找业务逻辑来决定哪些模块需要注册到系统来 在代码中注册的模块需要引用到系统来,不能在运行时动态加载 使用配置文件: Prism...支持通过加载一个配置文件来注册模块 这与在Silverlight中使用XAML方法注册模块的场景非常类似 在配置文件声明模块可以让系统决定什么时候加载和初始化模块 通过监视目录 可以指定一个目录, 如果有程序集被添加到此目录...注册模块依赖: 模块可以依赖于其他模块, Prism支持管理依赖。 包括控制循环引用和重复模块检测等功能。...以展示下载的byte数量和下载进度百分比, 下载完成行为: 程序可以订阅一个加载“模块完成”事件, 以处理模块加载和初始化完成后的额外事件 使用不同的依赖注入容器 一般在“快速入门”的示例中都是使用Unity...成为一体 Unity模块化: 此模块化快速入门示例使用Unity倚赖注入容器 场景 这一小节描述两个快速入门示例的相同场景, 每个快速入门示例都由六个模块组成 ModuleA、ModuleB、ModuleC

    1K10

    .NET Core 3 WPF MVVM框架 Prism系列之导航系统

    ,下面我们来看看如何在Prism的MVVM模式下实现该功能 一.区域导航 我们在上一篇介绍了Prism的区域管理,而Prism的导航系统也是基于区域的,首先我们来看看如何在区域导航 1.注册区域 LoginWindow.xaml...IApplicationCommands, ApplicationCommands>(); containerRegistry.RegisterInstance(Container.Resolve...这种可以同时显示多个活动视图的,可以通过Region的Add和Remove方法控制增加活动视图和失效视图,而当视图的KeepAlive为false,Region的Activate另外一个视图时,则该视图的实例则会去除出区域,为什么我们不在区域管理器讲解该接口呢...,OnNavigatedFrom和OnNavigatedTo方法IsNavigationTarget,OnNavigatedFrom和OnNavigatedTo形参NavigationContext...,通过区域管理器能够更好的管理视图View,更能适应复杂应用程序需求,wpf导航系统不支持依赖注入模式,也依赖于Frame元素,而且在导航过程也是容易强依赖View部分,下一篇将会讲解Prism的对话框服务

    2.3K30

    Aop介绍及几种实现方式

    最常见的是logging模块,这样,程序按功能被分为好几层,如果按传统的继承的话,商业模型继承日志模块的话根本没有什么意义,而通过创建一个logging切面就可以使用AOP来实现相同的功能了。...如在logging里,logging advice包括logging的实现代码,比如像写日志到一个文件。advice在jointpoint处插入到应用程序。...上例代码 aspect 日志 join point 即AroundAopAttribute的Before和After,即方法执行前和方法执行后 advice 即日志的逻辑部分...另一种方式是借助Ioc的代理来做Aop切面注入,这里我们以Unity作为Ioc容器,以之前写的关于Unity Ioc的例子来介绍Aop。...("cny")); new CashMachine().Print(container.Resolve("usd

    94320

    IoC+AOP的简单实现

    对EnterLib有所了解的人应该知道,其中有一个名叫Policy Injection的AOP框架;而整个EnterLib完全建立在另一个叫作Unity的底层框架之上,我们可以将Unity看成是一个IoC...Main(string[] args) 2: { 3: var container = GetContainer(); 4: var foo = container.Resolve...虽然简单,我们不妨来也做一下分析:首先,客户端对组件Foo的调用是基于接口(IFoo)而不是基于具体类型Foo,这样能够尽可能地降低对组件Foo的依赖;其次,Foo依赖于Bar,而这种依赖也是基于接口的,这在...那么,是什么导致了程序的完全按照我们希望的方式执行的呢?由于客户端逻辑只有三句代码,你肯定会猜的到:所有的一切都是由一开始创建的container对象完成的。...虽然Unity仅仅是一个轻量级的IoC框架,但是内部的实现其实是挺复杂的。个人曾经不止一次地分析过Unity的源代码,但是没过多久就忘得七七八八。

    546100
    领券