考虑以下IOperationBehavior属性:
public class OperationCredentialsAttribute : Attribute, IOperationBehavior
{
}
public class OperationProcessesAttribute : Attribute, IOperationBehavior
{
}
...以及以下操作定义:
public interface IService
{
[OperationCredentials(true)]
[OperationProcesses(new[] { "CreateCustomerProcess" })]
CreateCustomerResponse CreateCustomer(CreateCustomerMessage CreateCustomerMessage);
}
我需要确保在OperationProcesses属性之前处理OperationCredentials属性,因为两者都使用ApplyDispatchBehavior方法来注册自定义调用者,并且执行顺序很重要。
从我的测试中,装饰顺序并不总是服务加载时处理它们的顺序。
有什么想法吗?
答案 0 :(得分:0)
我认为将属性合并为一个的解决方案是正确的。
本文here讨论了各种扩展机制的优先级,并指出:
在任何行为集合中,同样不会保证订单。
集合可能是在方法上定义的一组IOperationBehaviors。