时如果我的服务有一些初始化代码添加服务初始化的方法,我知道两个选项:使用温莎城堡IoC容器
实现ISupportInitialize。
专业版:只依赖于.NET本地接口。答案:我通常只使用BeginInit(),所以总是有不必要的空EndInit代码实现Castle Core的IInitializable。
专业:只需要实施一种方法。答案:我必须让我的课程取决于Castle Core。
有没有更好的选择?
时如果我的服务有一些初始化代码添加服务初始化的方法,我知道两个选项:使用温莎城堡IoC容器
实现ISupportInitialize。
专业版:只依赖于.NET本地接口。答案:我通常只使用BeginInit(),所以总是有不必要的空EndInit代码
实现Castle Core的IInitializable。
专业:只需要实施一种方法。答案:我必须让我的课程取决于Castle Core。
有没有更好的选择?
有没有办法为每个实现某个接口的组件触发'OnCreate'? – Steven 2013-04-24 09:46:11
.ConfigureFor
另一种选择可能是将有关的组件转换成Castle设施,在那里你有更明确的控制,但这可能是矫枉过正的。
我只是选择1.冗余EndInit是无关紧要的。
您可以创建自己的界面并使用它。你在这里做的是被称为时间耦合,并被许多人认为是一种设计气味。阅读[this](http://blog.ploeh.dk/2011/05/24/DesignSmellTemporalCoupling/)了解更多信息。 – 2013-04-23 10:06:49
@DanielHilgarth如果我创建我自己的界面,Castle Windsor如何知道它应该执行这些代码? – 2013-04-23 10:11:31
它没有。我不知道代码是自动执行的。 – 2013-04-23 10:13:34