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

你能在Windsor Container中注册一个类型的现有实例吗?

在 Windsor Container 中注册一个类型的现有实例,您可以按照以下步骤操作:

  1. 在应用程序中安装 Windsor

在您的应用程序中,可以使用以下命令进行 Windsor 的安装:

代码语言:php
复制
Add-Type -Path "[PATH_TO]/Windsor.dll"

其中 [PATH_TO] 是 Windsor 的安装目录。

  1. 加载 Windsor

使用以下代码加载 Windsor:

代码语言:java
复制
var container = new WindsorContainer();
  1. 注册现有类型

您可以使用以下代码来注册一个类型的现有实例:

代码语言:java
复制
container.Register(Component.For<MyType>().Instance(myTypeInstance));

在上面的代码中,MyType 是您要注册的类型,myTypeInstance 是要注入到该类型的实例。

  1. 获得实例

使用以下代码可以获得注册的类型实例:

代码语言:vbnet
复制
var instance = container.Resolve<MyType>();

在上面的代码中,MyType 是您要获得的实例类型,instance 是注册实例的结果。

您也可以使用注册类型时的方法名来获得注册类型实例,例如:

代码语言:csharp
复制
var myInstanceMethod = container.Resolve<MyType>("myInstanceMethodName");

在上面的代码中,"myInstanceMethodName" 是您在使用 Windsor 时指定的要调用 MyType 的实例方法的名称。

通过这样的方法,在 Windsor Container 中注册一个类型的现有实例会变得非常简便。注意,在注册类型实例时,您也可以使用其他 Castle Windsor 的特性和技术,这些都可以在 Windsor 的文档中找到。

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

相关·内容

轻量级Golang IoC容器——iocgo

习惯于Java或者C#开发的人应该对控制反转与依赖注入应该再熟悉不过了。在Java平台有鼎鼎大名的Spring框架,在C#平台有Autofac,Unity,Windsor等,我当年C#开发时用的最多的就是Windsor。使用IoC容器是面向对象开发中非常方便的解耦模块之间的依赖的方法。各个模块之间不依赖于实现,而是依赖于接口,然后在构造函数或者属性或者方法中注入特定的实现,方便了各个模块的拆分以及模块的独立单元测试。 在[长安链]的设计中,各个模块可以灵活组装,模块之间的依赖基于protocol中定义的接口,每个接口有一个或者多个官方实现,当然第三方也可以提供该接口更多的实现。为了实现更灵活的组装各个模块,管理各个模块的依赖关系,于是我写了iocgo这个轻量级的golang版Ioc容器。

02

ASP.NET Core应用基本编程模式[2]:依赖注入

基于IHostBuilder/IHost的服务承载系统建立在依赖注入框架之上,它在服务承载过程中依赖的服务(包括作为宿主的IHost对象)都由代表依赖注入容器的IServiceProvider对象提供。在定义承载服务时,也可以采用依赖注入方式来消费它所依赖的服务。作为依赖注入容器的IServiceProvider对象能否提供我们需要的服务实例,取决于相应的服务注册是否预先添加到依赖注入框架中。服务注册可以通过调用IHostBuilder接口或者IWebHostBuilder接口相应的方法来完成,前者在《服务承载系统》已经有详细介绍,下面介绍基于IWebHostBuilder接口的服务注册。[本文节选自《ASP.NET Core 3框架揭秘》第11章, 更多关于ASP.NET Core的文章请点这里]

04

某酒管集团-单例模式对性能的影响及思考

摘要: 大概一年前开始在思考 构造函数中 依赖注入较多,这对系统性能及硬件资源消耗产生一些优化想法。一般较多公司的项目都使用Autofac 依赖注入(Scoped 作用域),但是发现过多的对象产生 会消耗 CPU , 内存 并给GC(垃圾回收)造成一定的压力。那么开始思考是否能够使用 单例 (Singleton)来解决这些问题呢?带着这些想法开始ReView整个项目的代码,排查是否存在 单例 会造成 线程安全 或 方法内修改全局变量的代码( 结果是乐观的.... )。于是开始了性能测试....论证.. 试运行... ,结果是超预期的(CPU 从 60%-降低到--》10%, 内存 从 33%-降低到--》20%, 接口平均响应时间 从 120毫秒--降低到--》50毫秒 . 1500/QPS (不含内部服务相互调用)) 和 @InCerry 沟通结果,说可以写个 案例 和大家分享分享... 于是乎 有了这一片文章。

02
领券