Определение приоритета при использовании нескольких атрибутов IOperationBehavior - PullRequest
2 голосов
/ 25 августа 2010

Рассмотрим следующие атрибуты IOperationBehavior:

public class OperationCredentialsAttribute : Attribute, IOperationBehavior
{
}

public class OperationProcessesAttribute : Attribute, IOperationBehavior
{
}

... и следующее определение операции:

public interface IService
{
    [OperationCredentials(true)]
    [OperationProcesses(new[] { "CreateCustomerProcess" })]
    CreateCustomerResponse CreateCustomer(CreateCustomerMessage CreateCustomerMessage);
}

Мне нужно убедиться, что атрибут OperationCredentials обработан до OperationProcessesатрибут, поскольку оба используют метод ApplyDispatchBehavior для регистрации пользовательских инициаторов, и порядок выполнения важен.

Из моих тестов порядок декорирования не всегда соответствует порядку, в котором они обрабатываются при загрузке службы.1010 * Есть идеи?

1 Ответ

0 голосов
/ 09 марта 2011

Я думаю, что ваше решение объединить атрибуты в одно было правильным.

В этой статье здесь обсуждается приоритет различных механизмов расширения и указывается, что:

В любом наборе поведений, опять же, порядок не гарантируется.

Где коллекция может быть набором IOperationBehaviors, определенным для метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...