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

对于特定的控制器,Windsor实例化不同的类

对于特定的控制器,Windsor 实例化不同的类,可以使用 Castle Windsor 容器来实现。

首先,需要安装 Castle Windsor 容器,可以使用 NuGet 包管理器来安装。

代码语言:txt
复制
Install-Package Castle.Windsor

然后,可以使用 Castle Windsor 容器来实例化不同的类。以下是一个示例代码:

代码语言:csharp
复制
using Castle.MicroKernel.Registration;
using Castle.Windsor;

public class Controller
{
    private IWindsorContainer _container;

    public Controller()
    {
        _container = new WindsorContainer();
        _container.Register(Component.For<IController>().ImplementedBy<Controller1>().Named("Controller1"));
        _container.Register(Component.For<IController>().ImplementedBy<Controller2>().Named("Controller2"));
    }

    public IController GetController(string controllerName)
    {
        return _container.Resolve<IController>(controllerName);
    }
}

在上面的示例代码中,我们使用了 Castle Windsor 容器来注册两个不同的控制器类,并且为它们分别指定了不同的名称。然后,我们可以使用 Resolve 方法来根据名称实例化不同的控制器类。

需要注意的是,在实际使用中,应该避免在代码中直接使用 Castle Windsor 容器,而是应该将容器的使用封装在一个单独的类中,以便于代码的可维护性和可测试性。

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

相关·内容

实例顺序

讲讲实例顺序,比如父静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 时候,他们执行顺序。...// 前提是带参数构造函数B会被运行(new实例或this) // super(77); System.out.print("B 带参数构造函数:" + num + "\n"...run.."); B b = new B(); // B b = new B(22); b.methodA(); } } 综合结论,一个实例过程...其次才是父构造函数,执行带参数或不带参数构造函数,依赖于实例构造函数有没有super父带参或不带参构造函数,上边试验二三已经证明。...Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/java基础-实例顺序

1.2K10
  • Dart - 抽象实例

    抽象不能实例。 继承: 子类比较实现抽象方法,子类可以不重写抽象中已实现方法。...接口: 必须实现抽象中声明所有方法 二、抽象实例 上面提到了抽象不能用于创建实例,但是有没有发现,Dart 提供 Map 和 List 就是抽象,却可以直接使用它们创建出一个实例对象 final...Map源码 Map 的确是抽象,不过此时我们也注意到了,在 Map 这个抽象中,定义了一个工厂构造方法,这就是使抽象实例关键所在,因为工厂方法可以返回一个实例对象,但这个对象类型不一定就是当前...很遗憾不行,因为在抽象中定义了工厂构造方法后,在子类中不能定义除工厂构造方法外其它构造方法了,会报错~ 总结一下: 抽象无法直接创建实例,但是可以通过实现工厂构造方法来间接实现抽象实例!...这样做好处就是: 复用同一套API声明 可以针对不同平台做不同实现 而 针对不同平台做不同实现 这一点在下方给出源码中可以看出 // flutter/bin/cache/dart-sdk

    2.8K41

    JAVA——定义及其实例

    变量声明和初始都是在方法中,方法结束后,变量就会自动销毁 l 成员变量:成员变量是定义在中,方法体之外变量。这种变量在创建对象时候实例。...成员变量可以被中方法、构造方法和特定语句块访问 l 变量:变量也声明在中,方法体之外,但必须声明为static类型 2.构造方法        每个都有构造方法。...创建对象需要以下三步: l 声明:声明一个对象,包括对象名称和对象类型 l 实例:使用关键字new来创建一个对象 l 初始:使用new创建对象时,会调用构造方法初始对象        下面是一个创建对象示例...如下所示,通过对象名点方式来访问([对象名].) /* 实例 */  Person p = new Person();  /* 访问变量 */  p.name;  /* 访问方法 ...Java支持四种不同访问权限: 修饰符 说明 public 公共,所有可见 protected 保护,同一包内和所有子类可见 private 私有的,同一中可见 默认 同一包内可见,默认不使用任何修饰符

    1.3K30

    【C++】和对象(定义,域,实例,this指针)

    定义 以下是class关键词使用 如下代码, class为定义关键字,Stack为你取名字,{ }内为主体...array; size_t capacity; size_t top; //成员函数 void Init(int capacity = 4) { } }; 注意一:也许会遇上如下初始时候...“_” int* _array;//如 int* _array 或者 array_ size_t _capacity;//加标识符是为了方便区分如下函数Init初始谁是谁 size_t _top...通俗说,不同类域相当于不同家族,不同家族里可以都叫“张伟”不会混,相同家族就有可能。...实例 这是我之前写博客内容 1. 1对N 一个可以实例多个对象 2. 计算大小只考虑成员变量 不包含成员函数 计算方式遵循内存对齐原则 内存对齐原则 3.

    9310

    根据字符串实例

    系统学习Windows客户端开发 ---- 假设你源码定义了CDemoClass,那么new CDemoClass()可以实例CDemoClass。...解析JSON数据后,根据type实例Line,Circle。怎么实现呢?太简单了。...那有没更好实现方式呢? 如果让图形元素提供创建实例方法,并将名字串与其绑定,然后CreateGraphItem()通过名字串可以找到其创建实例方法,进而调用它。...图形元素,要实现创建实例方法,同时定义CClassInfo对象,不同图形元素实现都是相似的,区别在于不同,于是我们可以将它定义成宏,让图形元素引用。...\ IGraphItem* class_name::NewInstance() \ { \ return new class_name(); \ } 可以根据名字串实例也叫做运行时

    2.4K20

    实例php时传参方法分析

    本文实例讲述了实例php时传参方法。分享给大家供大家参考,具体如下: 当我们实例一个php时候,要怎么传递参数呢?这取决于该类构造方法。 例: person.class.php <?...php include('person.class.php'); $son = new person('cuihua',25,'girl');//此处参数传递要和构造方法里面的参数顺序对应...注:php属性(name、age等)可以在该类全局范围内使用,可以把属性视为“该类”全局变量。...但是当外部程序重新调用这个方法时,该类会重新被实例,也就是说要再次执行构造方法,那么上一次给name等属性赋值就会被清空,所以name等属性值不会像常量或是session中值那样一直保持下去...可以通过var_dump()打印对象,不过只能打印对象属性,它方法不能打印出来,要想获取对象方法列表,可以用get_class_methods函数。

    3.4K30

    C++从入门到精通——作用域及实例

    然而,外部无法直接访问这些成员,除非通过实例本身(对于静态成员)。...在实例过程中,会调用构造函数来初始对象状态。一旦对象被实例,就可以通过该对象来访问属性和方法,从而实现对对象操作。...二、实例类型创建对象过程,称为实例 引例 #include using namespace std; class Person { public: void...为什么直接计算没有实例空间大小是存在 在计算机内存中,每个定义都占据一定内存空间,即使没有实例该类对象。...return 0; } Person是没有空间,只有Person实例化出对象才有具体年龄。 示例 如下例子是一个汽车,每个汽车对象都可以有不同颜色、品牌和型号。

    34410

    python 创建, 实例, 初始以及面向对象(4.1)

    创建, 实例, 初始 什么是 就是拥有相同功能或者相同属性对象集合 创建 object是所有 class GoGamer(object): subject = 'go'...print(GoGamer) 实例 实例就是抽象概念具象 kejie = GoGamer() print(kejie) 初始 创建一个新实例时候会默认调用__init__这样一个特殊方法...init__(self, obj): self.p = obj kejie = GoGamer("金勺子") print(f"柯洁含着{kejie.p}出生") 关于self 指代还未实例实例...__class__.mro() return mro[mro.index(cls) + 1] def super(, 实例): # 获取当前实例方法解析顺序 mro = 实例...封装 把客观事物封装成抽象, 隐藏实现细节, 使得代码模块.

    1.2K10

    php实例一个具体方法

    实例就是对象。一个可以分成两个部分,一个是静态描述,就是成员属性。第二个是动态描述,就是成员方法,也就是对象功能。...声明一个,可以在class前加一些关键字,如abstract或final等。 声明变量时,前面要加一个关键字,通常为var,还有public,private,static,等关键字。...$变量名 = new 名(); //括号里可传参数 给对象中成员属性赋值格式为 $引用名 - 成员属性 = 值; 调用对象中成员方法格式为 $引用名 - 成员方法; 成员方法使用成员属性格式为...以上就是php如何实例一个详细内容,感谢大家学习和对ZaLou.Cn支持。

    1.1K21

    杂谈 论实例第六种方式

    ---- 你知道几种实例一个方式? new?反射?还有呢?...笔者总结了一下大概有以下六种方式: (1)通过构造方法实例一个; (2)通过Class实例一个; (3)通过反射实例一个; (4)通过克隆实例一个; (5)通过反序列实例一个; (...6)通过Unsafe实例一个; Let us 直接上代码: public class InstantialTest { private static Unsafe unsafe; static...最后打印结果是这样: 10101010100 意不意外?惊不惊喜? 最后一种通过Unsafe实例,里面的age值竟然是0,而不是10或者20。...这是因为调用UnsafeallocateInstance()方法只会给对象分配内存,并不会初始对象中属性,所以int类型默认值就是0。 还有其它方式实例吗?欢迎补充!

    43820

    Python实现子类调用父初始实例

    前言 python中进行面向对象编程,当在子类实例中调用父属性时,由于子类__init__方法重写了父__init__方法,如果在子类中这些属性未经过初始,使用时就会出错。...方法一: 调用未绑定__init__方法 在方法定义时,首个参数均为self。当实例这个时,self就被自动绑定到当前实例。绑定也就意味着这个实例属性,方法都可以通过‘self....***方式进行调用。但是如果通过名直接调用方法,self参数就不会被自动绑定到实例上,可以绑定到我们指定实例上。也就是子类实例上,在这里就是B了。...所以这里所说未绑定__init__方法 就是指未绑定父实例__init__方法。...以上这篇Python实现子类调用父初始实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    2K20

    深入理解Java对象创建过程:初始实例

    进一步地说,在实例一个对象时,具体过程是这样: 在准备实例一个对象前,首先准备实例该类,如果该类还有父,那么准备实例该类,依次递归直到递归到Object。...构造器()与实例构造器()不同,它不需要程序员进行显式调用,虚拟机会保证在子类构造器()执行之前,父构造()执行完毕。...特别地,构造器()对于或者接口来说并不是必需,如果一个中没有静态代码块,也没有对变量赋值操作,那么编译器可以不为这个生产构造器()。...---- 2、初始过程与实例过程异同? 初始是指加载过程中初始阶段对变量按照程序猿意图进行赋值过程;而实例是指在完全加载到内存中后创建对象过程。...我们知道,要想创建一个实例,必须先将该类加载到内存并进行初始,也就是说,初始操作是在实例操作之前进行,但并不意味着:只有初始操作结束后才能进行实例操作。

    3K51

    深入理解Java对象创建过程:初始实例

    进一步地说,在实例一个对象时,具体过程是这样:    在准备实例一个对象前,首先准备实例该类,如果该类还有父,那么准备实例该类,依次递归直到递归到Object...构造器()与实例构造器()不同,它不需要程序员进行显式调用,虚拟机会保证在子类构造器()执行之前,父构造()执行完毕。...特别地,构造器()对于或者接口来说并不是必需,如果一个中没有静态代码块,也没有对变量赋值操作,那么编译器可以不为这个生产构造器()。...2、初始过程与实例过程异同?     初始是指加载过程中初始阶段对变量按照程序猿意图进行赋值过程;而实例是指在完全加载到内存中后创建对象过程。    ...我们知道,要想创建一个实例,必须先将该类加载到内存并进行初始,也就是说,初始操作是在实例操作之前进行,但并不意味着:只有初始操作结束后才能进行实例操作。

    2.6K10

    【C++掌中宝】和对象(一):定义和实例

    封装:封装是将数据和操作数据方法绑定在一起,并隐藏对象内部实现细节。通过封装,内部状态只能通过特定方法进行访问和修改,从而提高了代码安全性和可维护性。 2....每个对象会拥有自己一组成员变量,并且这些成员变量可以在对象生命周期内保存特定数据。 成员变量可以是各种数据类型,例如int、double、string,甚至可以是其他对象。...通过创建具体实例称为对象。每个对象都有自己属性值和方法实现。例如,通过“汽车”创建具体汽车对象可以有不同颜色和品牌。...2.1 实例 2.1.1 实例概念 用类型在物理内存中创建对象过程,称为实例化出对象。...上面我们分析了对象中只存储成员变量,C++规定实例对象也要符合内存对齐规则。 内存对齐规则 第一个成员在与结构体偏移量为0地址处。

    15510
    领券