2

我如何告诉 Castle 从执行目录中的程序集中获取接口实现。
例如

我如何告诉城堡找到 ILog 的实现,然后如果我将 log4net 放在执行目录中的程序集中,它应该选择并使用它。明天如果我决定将 log4net 更改为 Nlog,它应该选择 Nlog 来记录(显然两者都应该实现 ILog)

4

1 回答 1

3

你一般不应该这么含蓄。如果提供了多个 impl 怎么办?如果你不小心掉了一些你不打算掉的东西怎么办?

话虽如此,您应该使用任一配置文件在 XML 中明确告诉 Windsor 哪种类型可以满足您的服务,或者如果您想要更大的灵活性,则使用 Binsor。代码中没有神奇的方法“为此服务选择此文件夹中任何程序集中的任何实现”,而且不太可能永远存在。

对于记录器的特定场景,您可以使用 Windsor 的 Logging 工具。

于 2010-02-10T21:59:33.493 回答