哪种 WCF 配置方法更明智?

5
我正在读两本关于WCF的书,其中一本将配置显示为App.Config,另一本则通过C#代码显示。
我想知道应该使用哪种方法以及它们各自的好处。Wcf配置向导是否也支持C#代码后台配置?
感谢您的回答。
3个回答

5

配置文件可以在不重新编译的情况下进行更改(例如,添加自定义检查器或序列化程序非常方便),可轻松复制/粘贴客户端/服务器之间,还得到了 IDE 工具的支持。

如果您正在运行库(dll)并且无法保证配置文件将 a: 存在或 b: 具有您的配置,则代码在配置系统 运行时(即从另一台服务器获取信息)很方便。代码还具有智能感知/静态检查,以避免大脑抽搐错误(xml 中的打字错误等)。

在您确定没有适合使用文件的情况之前,我建议您先使用文件。

还需考虑:更改代码与更改配置相比,部署难度如何?对我来说它们基本相同,但您可能不是这种情况。也许在机器上只更改配置更容易?也可能不是。


1

配置文件的方法更好,它提供了更多的灵活性。例如,我可以通过更改配置文件来更改身份验证类型(用户名密码/Windows)。


你也可以在代码中更改身份验证类型,因此没有进一步的上下文,这并不能让我们在它们之间进行太多选择。 - Marc Gravell
我同意你的观点,但是如果我学到了有关WCF安全性的新知识,我可以通过配置文件轻松更改我的身份验证。 - croisharp
在现实生活(严肃?)的场景中,影响应用程序所有通信的配置文件更改仍需要进行与代码更改相同的测试。如果您正确地完成了工作,则在部署dll或.config文件方面并没有太大区别。 - Sebastian Piu

1

我觉得这取决于你的需求。我个人倾向于使用代码配置wcf,特别是那些不太可能改变的东西。这可能包括错误处理程序/记录器、行为、身份验证模块、服务主机工厂等。

对于更加动态的内容,比如连接字符串、密码、文件路径等,则在.config文件中配置。

使用代码的最大优点之一是,您的代码现在可以支持IOC /依赖注入、编译时检查等功能。

我不认同把所有东西都放在配置文件中就因为它更容易更改这种想法。在我看来,在大多数情况下,它在生产环境中从未发生过变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接