Промежуточное ПО/перехватчик WCF для более раннего возврата пользовательского ответаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Промежуточное ПО/перехватчик WCF для более раннего возврата пользовательского ответа

Сообщение Anonymous »

Чего я хочу достичь:
Я хочу контролировать все вызовы методов WCF и добавить некоторую проверку. Если проверка не удалась, я хочу, чтобы метод возвращался раньше с пользовательским ответом того же типа с типом возвращаемого метода.
Как я могу добиться этого в центральном месте без необходимости добавления проверка валидации в каждом методе?
Вот псевдокод:
using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Text;
using System.Threading;

namespace Microsoft.WCF.Documentation
{
[ServiceContractAttribute(Namespace="http://microsoft.wcf.documentation")]
public interface ISampleService
{
[OperationContractAttribute(AsyncPattern=true)]
IAsyncResult BeginGetCustomerInfo(GetCustomerInfoRequest request, AsyncCallback callback, object asyncState);

GetCustomerInfoResponse EndGetCustomerInfo(IAsyncResult result);

[OperationContractAttribute(AsyncPattern=true)]
IAsyncResult BeginGetProductDetails(GetProductDetailsRequest request, AsyncCallback callback, object asyncState);

GetProductDetailsResponse EndGetProductDetails(IAsyncResult result);
}

public class SampleService : ISampleService
{
public IAsyncResult BeginGetCustomerInfo(GetCustomerInfoRequest request, AsyncCallback callback, object asyncState)
{
Console.WriteLine("BeginGetCustomerInfo called with: \"{0}\"", request);
//...
}

public GetCustomerInfoResponse EndGetCustomerInfo(IAsyncResult r)
{
//...
return new GetCustomerInfoResponse();
}

public IAsyncResult BeginGetProductDetails(GetProductDetailsRequest request, AsyncCallback callback, object asyncState)
{
Console.WriteLine("BeginGetProductDetails called with: \"{0}\"", request);
//...
}

public GetProductDetailsResponse EndGetProductDetails(IAsyncResult r)
{
//...
return new GetProductDetailsResponse();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/766 ... se-earlier
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»