【发布时间】:2013-04-23 10:03:58
【问题描述】:
如果我的服务有一些初始化代码,我知道两种选择:
实现ISupportInitialize.
Pro:仅依赖于 .NET 原生接口。
缺点:我通常只使用 BeginInit(),所以总是有不必要的空 EndInit() 代码实现 Castle Core 的 IInitializable。
优点:只需要实现一种方法。
缺点:我必须让我的课程依赖于 Castle Core。
有更好的选择吗?
【问题讨论】:
-
您可以创建自己的界面并使用它。您在这里所做的称为时间耦合,并且被许多人认为是一种设计气味。阅读this了解更多信息。
-
@DanielHilgarth 如果我创建自己的界面,Castle Windsor 怎么知道它应该执行这些代码?
-
它没有。我不知道代码会自动执行。
-
但如果我实现 ISupportInitialize 或 IInitializable,它似乎会自动执行代码。
标签: c# .net castle-windsor ioc-container