在WCF中,某些设置被写为类属性。我想在配置文件中设置它们。
实施例
[OperationContract(IsOneWay = true)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
有没有办法做到这一点?也许用MicroKernel/Windsor?
答案 0 :(得分:1)
某些设置确实需要属性(而不是可配置)。现在,虽然我不知道所有这些出现,但至少对某些人来说这是有道理的。例如,InstanceContextMode和ConcurrencyMode需要特定的实现样式。换句话说,实现必须以实际支持指定模式的方式编写(考虑无状态,实现对象生命周期等)。
作为辅助节点:当使用DI为WCF创建实现类(使用自定义InstanceContextInitializer)时,您甚至必须确保不要更改通过服务行为指定的行为。例如,Windsor的默认生命周期策略是“单一”,因此无论您在ServiceBehavior中指定什么,您都会有效地使用InstanceContextMode.Single - 可能不是您想要的。至少它不容易被发现。