如标题所示,我有:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebGet(UriTemplate="abc")]
Stream GetResponse(Stream in);
}
public class Service : IService
{
public Stream GetResponse(Stream in)
{
some_function()
}
}
是否可以将请求上下文传递给将响应请求的其他函数?
答案 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);
}