как установить атрибут defaultcontract по умолчанию в wcf-сервисе - PullRequest
3 голосов
/ 16 сентября 2011

Есть ли способ установить "default" -faultcontract, например, для всех методов в wcf-service-class?как

[ServiceContract]
[DefaultFaultContract(typof(MyServiceFault))]
class MyService
{
    [OperationContract]
    void DoWork();
}

вместо:

[ServiceContract]
public interface ICustomerService
{
    [OperationContract]
    [FaultContract(typeof(ServiceFault))]
    void DoWork();
}

Мне очень нужна ссылка для "Пошагового" руководства.

1 Ответ

0 голосов
/ 16 сентября 2011

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

Этот код может быть вам полезен

Создает прокси, который перехватывает все исключения, возникающие при вызове членов объекта, реализующего определенный интерфейс.Вы можете использовать это на каналах wpf.

IMyInterface myService = [...];
IMyInterface myExceptionLoggedService = ExceptionProxyGenerator.Generate<IMyInterface>(myService);
(myExceptionLoggedService  as IExceptionProxy).Error+=(sender,method,exception)=>{
   // do what you want on exception
};
// Use my service :
myExceptionLoggedService.MyOkFunction();// ok
myExceptionLoggedService.MyExceptionFunction();// calling the above delegate

Вы можете немного переписать этот класс, чтобы получить желаемый тип поведения (например, не выбрасывать исключение при ошибке и возвращать нулевую функцию -if, не возвращая void-)

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