Мы реализовали иерархию пользовательских атрибутов, используя PostSharp, чтобы позаботиться обо всех проверках, необходимых для каждого из методов WCF.
Поскольку службы реализуют шаблон запроса / ответа, а объекты ответа имеют ErrorCode и ErrorMessage, атрибуты также действуют как универсальный и возвращают ошибочный ответ, когда возникает исключение, и он будет включать соответствующий ErrorCode и сообщение в ответ.
Это сработало очень хорошо, и мы смогли вырезать большую часть кода котельной плиты из: -)