Можно ли ответить на запрос другого метода, определенного в [OperationContract]? - PullRequest
0 голосов
/ 29 мая 2010

как в заголовке, у меня есть:

[ServiceContract]
    public interface IService
    {
        [OperationContract]
        [WebGet(UriTemplate="abc")]
        Stream GetResponse(Stream in);
    }

    public class Service : IService
    {
        public Stream GetResponse(Stream in)
        {
           some_function()
        }   
    }

возможно ли передать контекст запроса какой-либо другой функции, которая будет отвечать на запрос?

1 Ответ

1 голос
/ 29 мая 2010

Да, в пределах some_function вы можете получить доступ к текущему WCF OperationContext через статическое Current свойство , которое предоставит вам полный доступ ко всему, что касается запроса. Или, что еще лучше, вы можете спроектировать some_function, чтобы он принимал параметр OperationContext, и тогда ему не нужно извлекать его из воздуха, что фактически улучшает тестируемость.

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

Так что ваш some_function может выглядеть примерно так:

public Stream GetResponse(Stream in) 
{ 
    return some_function(OperationaContext.Current, in);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...