哪个命名空间在Castle Windsor中拥有Component.For?

时间:2015-06-19 17:45:12

标签: c# castle-windsor

我正在学习温莎城堡,我发现了this tutorial。其中包含以下代码:

private void button1_Click(object sender, EventArgs e)
{
    // CREATE A WINDSOR CONTAINER OBJECT AND REGISTER THE INTERFACES, AND THEIR CONCRETE IMPLEMENTATIONS.
    var container = new WindsorContainer();
    container.Register(Component.For<Main>());
    container.Register(Component.For<IDependency1>().ImplementedBy<Dependency1>());
    container.Register(Component.For<IDependency2>().ImplementedBy<Dependency2>());

    // CREATE THE MAIN OBJECT AND INVOKE ITS METHOD(S) AS DESIRED.
    var mainThing = container.Resolve<Main>();
    mainThing.DoSomething();
}

我跟着这个,但是Component.For调用给我带来了编译错误。智能感知无法找到Component。我应该使用什么命名空间进行此调用?

我通过NuGet添加了Castle.CoreCastle.Windsor引用。我一直在搜索对象浏览器,试图找到Component,但这是一个很常见的名字。该教程不方便地遗漏了using,我无法找到任何文档。

* 我发现许多教程和StackOverflow答案都忽略了using,我永远无法弄清楚原因。

1 个答案:

答案 0 :(得分:3)

它在Castle.MicroKernel.Registration

这有时会让我烦恼,不过如果项目是开源的,通常很容易搜索their repository