wcf配置文件vs代码配置的优点和缺点

我有一个自托管的C#WCF服务,可以为各种目的创建20多个端点。 每个都在代码本身配置,在服务的app.config中有一些基本配置项,如端口和地址。 该服务非常适合经过测试的客户,但尚未经过广泛测试。

我对标准的wcf配置文件方法有点小心,因为我担心最终用户会搞砸事情,因此在代码中做了所有事情。

在配置文件中进行配置是一个更好的主意,因为最终用户可以根据自己的需要对其进行自定义,还是满足大多数需求的代码方法?

WCF的主要好处之一是从代码中抽象出连接细节。 如果您需要更改任何服务参数,可以更轻松地从web.config执行此操作,而无需重新编译。 例如,您可能需要更改“端口和地址”。 如果从代码中执行此操作,则需要重建,这可能不切实际。 此外,我不确定为什么最终用户会正常搞乱web.config,除非真的有必要。

简而言之,除非您有充分的理由不使用配置文件,否则您应该使用它们以获得WCF提供的抽象的全部好处。

你需要问自己一些问题

  • 不同的开发者在他们的机器上有不同的价值?
  • 不能使用c#的其他人是否必须更改这些设置值? (例如管理员)
  • 某些值(例如邮件大小)是否需要稍后调整以适应性能?

如果对这些问题的答案是肯定的,那么您需要将设置移动到.config文件中。 如果您担心理解其他设置的客户会意外搞乱您的wcf设置,您可以随时通过将configSource属性添加到每个标记的web.config或app.config文件来分隔设置,并将部分配置放入在子目录中单独的文件,以减少意外更改的可能性。

只是,

如果使用.config文件,则可以在编译代码后更改配置。 根据您的情况,这可能是好的也可能是坏的。