我非常喜欢在代码中工作,利用 IntelliSense 并开放 C# 语言的所有功能来使用WCF,但我想确保我不会朝着最终会限制 WCF 功能集的方向前进我可以访问。我对 WCF 的经验非常有限,以至于我不了解使用配置文件的好处,尤其是如果您可以在代码中完成所有操作(?)。
注意:我使用的是 .NET 3.5。
您能否以编程方式使用 WCF 执行“所有操作”,还是完整的 WCF 功能集需要配置文件?
我非常喜欢在代码中工作,利用 IntelliSense 并开放 C# 语言的所有功能来使用WCF,但我想确保我不会朝着最终会限制 WCF 功能集的方向前进我可以访问。我对 WCF 的经验非常有限,以至于我不了解使用配置文件的好处,尤其是如果您可以在代码中完成所有操作(?)。
注意:我使用的是 .NET 3.5。
您能否以编程方式使用 WCF 执行“所有操作”,还是完整的 WCF 功能集需要配置文件?
您可以在代码和配置中完成大约 99.8% 的事情。
有些事情只能在代码中完成——比如在需要这两者进行身份验证的呼叫中设置用户名和密码。
似乎有一些事情只能在配置中完成 - 例如,请参阅this other recent SO question。
但我认为,如果你更喜欢代码,那么绝大多数情况下你应该没问题。
马克
一个杂草丛生的评论...
Marc_s 的回答和问题的观点很好(我有两个 +1)。
我毫不怀疑以下内容对你们俩都不是新闻,但想指出以防有人遇到这种情况并且不知道纯程序化方法的缺点。
从基于配置文件的设置转移到编程配置意味着
我承认,这两种“损失”都值得商榷——它们会助长不良习惯,并阻止您以尽可能快的方式为客户找到最可靠的解决方案。
更新:我已经实现了一种机制,我使用ChannelFactory<T>
但从 app.config 中获取自定义配置(如果存在),或者提供默认值(如果不存在)(我的场景是我是其他人进程中的客人,并且因此不能假设配置文件易于更新/已更新,但不想在部署后失去调整设置的选项)