4

我非常喜欢在代码中工作,利用 IntelliSense 并开放 C# 语言的所有功能来使用WCF,但我想确保我不会朝着最终会限制 WCF 功能集的方向前进我可以访问。我对 WCF 的经验非常有限,以至于我不了解使用配置文件的好处,尤其是如果您可以在代码中完成所有操作(?)。

注意:我使用的是 .NET 3.5。

您能否以编程方式使用 WCF 执行“所有操作”,还是完整的 WCF 功能集需要配置文件?

4

2 回答 2

6

您可以在代码和配置中完成大约 99.8% 的事情。

有些事情只能在代码中完成——比如在需要这两者进行身份验证的呼叫中设置用户名和密码。

似乎有一些事情只能在配置中完成 - 例如,请参阅this other recent SO question

但我认为,如果你更喜欢代码,那么绝大多数情况下你应该没问题。

马克

于 2009-11-12T18:15:40.297 回答
4

一个杂草丛生的评论...

Marc_s 的回答和问题的观点很好(我有两个 +1)。

我毫不怀疑以下内容对你们俩都不是新闻,但想指出以防有人遇到这种情况并且不知道纯程序化方法的缺点。

从基于配置文件的设置转移到编程配置意味着

  • 您失去了在现场调整(阅读:hack!)事物的能力 - 您唯一的求助途径将是重新编译和重新部署二进制文件。对于许多情况(包括我的一种情况),这不是 n。
  • 您无法通过在配置文件中杂耍它们来在多组配置之间切换。

我承认,这两种“损失”都值得商榷——它们会助长不良习惯,并阻止您以尽可能快的方式为客户找到最可靠的解决方案。

更新:我已经实现了一种机制,我使用ChannelFactory<T>但从 app.config 中获取自定义配置(如果存在),或者提供默认值(如果不存在)(我的场景是我是其他人进程中的客人,并且因此不能假设配置文件易于更新/已更新,但不想在部署后失去调整设置的选项)

于 2010-04-27T14:32:28.097 回答