是否可以响应来自[OperationContract]中定义的另一种方法的请求?

时间:2010-05-29 13:57:31

标签: c# wcf

如标题所示,我有:

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

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

是否可以将请求上下文传递给将响应请求的其他函数?

1 个答案:

答案 0 :(得分:1)

是的,在some_function内,您可以通过OperationContext访问当前的WCF the static Current property,这样您就可以完全访问有关请求的所有内容。或者,更好的是,您可以设计some_function以接受OperationContext参数,然后它不必将其从空气中拉出来,这实际上可以提高测试性。

除了上下文之外,如果有Stream实例打算对其进行操作,您还需要从some_function获取并返回这些实例。

所以你的some_function可能看起来像这样:

public Stream GetResponse(Stream in) 
{ 
    return some_function(OperationaContext.Current, in);
}