wcf配置文件vs代码配置的优点和缺点
我有一个自托管的C#WCF服务,可以为各种目的创建20多个端点。 每个都在代码本身配置,在服务的app.config中有一些基本配置项,如端口和地址。 该服务非常适合经过测试的客户,但尚未经过广泛测试。
我对标准的wcf配置文件方法有点小心,因为我担心最终用户会搞砸事情,因此在代码中做了所有事情。
在配置文件中进行配置是一个更好的主意,因为最终用户可以根据自己的需要对其进行自定义,还是满足大多数需求的代码方法?
WCF的主要好处之一是从代码中抽象出连接细节。 如果您需要更改任何服务参数,可以更轻松地从web.config执行此操作,而无需重新编译。 例如,您可能需要更改“端口和地址”。 如果从代码中执行此操作,则需要重建,这可能不切实际。 此外,我不确定为什么最终用户会正常搞乱web.config,除非真的有必要。
简而言之,除非您有充分的理由不使用配置文件,否则您应该使用它们以获得WCF提供的抽象的全部好处。
你需要问自己一些问题
- 不同的开发者在他们的机器上有不同的价值?
- 不能使用c#的其他人是否必须更改这些设置值? (例如管理员)
- 某些值(例如邮件大小)是否需要稍后调整以适应性能?
如果对这些问题的答案是肯定的,那么您需要将设置移动到.config文件中。 如果您担心理解其他设置的客户会意外搞乱您的wcf设置,您可以随时通过将configSource
属性添加到每个标记的web.config或app.config文件来分隔设置,并将部分配置放入在子目录中单独的文件,以减少意外更改的可能性。
只是,
如果使用.config
文件,则可以在编译代码后更改配置。 根据您的情况,这可能是好的也可能是坏的。