有没有办法通过配置文件来装饰具有属性的类?

时间:2009-12-11 11:24:00

标签: .net wcf attributes

在WCF中,某些设置被写为类属性。我想在配置文件中设置它们。

实施例

[OperationContract(IsOneWay = true)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
    ConcurrencyMode = ConcurrencyMode.Multiple)]

有没有办法做到这一点?也许用MicroKernel/Windsor

1 个答案:

答案 0 :(得分:1)

某些设置确实需要属性(而不是可配置)。现在,虽然我不知道所有这些出现,但至少对某些人来说这是有道理的。例如,InstanceContextMode和ConcurrencyMode需要特定的实现样式。换句话说,实现必须以实际支持指定模式的方式编写(考虑无状态,实现对象生命周期等)。

作为辅助节点:当使用DI为WCF创建实现类(使用自定义InstanceContextInitializer)时,您甚至必须确保不要更改通过服务行为指定的行为。例如,Windsor的默认生命周期策略是“单一”,因此无论您在ServiceBehavior中指定什么,您都会有效地使用InstanceContextMode.Single - 可能不是您想要的。至少它不容易被发现。