71 lines
2.5 KiB
C#
71 lines
2.5 KiB
C#
|
//------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------
|
||
|
#pragma warning disable 1634, 1691
|
||
|
|
||
|
namespace System.ServiceModel.Web
|
||
|
{
|
||
|
using System;
|
||
|
using System.Globalization;
|
||
|
using System.Net;
|
||
|
using System.Runtime;
|
||
|
using System.ServiceModel;
|
||
|
using System.ServiceModel.Channels;
|
||
|
|
||
|
public class IncomingWebResponseContext
|
||
|
{
|
||
|
OperationContext operationContext;
|
||
|
internal IncomingWebResponseContext(OperationContext operationContext)
|
||
|
{
|
||
|
Fx.Assert(operationContext != null, "operationContext is null");
|
||
|
this.operationContext = operationContext;
|
||
|
}
|
||
|
|
||
|
public long ContentLength
|
||
|
{ get { return long.Parse(EnsureMessageProperty().Headers[HttpResponseHeader.ContentLength], CultureInfo.InvariantCulture); } }
|
||
|
|
||
|
public string ContentType
|
||
|
{ get { return EnsureMessageProperty().Headers[HttpResponseHeader.ContentType]; } }
|
||
|
|
||
|
public string ETag
|
||
|
{ get { return EnsureMessageProperty().Headers[HttpResponseHeader.ETag]; } }
|
||
|
|
||
|
public WebHeaderCollection Headers
|
||
|
{ get { return EnsureMessageProperty().Headers; } }
|
||
|
|
||
|
public string Location
|
||
|
{ get { return EnsureMessageProperty().Headers[HttpResponseHeader.Location]; } }
|
||
|
|
||
|
public HttpStatusCode StatusCode
|
||
|
{ get { return this.EnsureMessageProperty().StatusCode; } }
|
||
|
|
||
|
public string StatusDescription
|
||
|
{ get { return this.EnsureMessageProperty().StatusDescription; } }
|
||
|
|
||
|
HttpResponseMessageProperty MessageProperty
|
||
|
{ get
|
||
|
{
|
||
|
if (operationContext.IncomingMessageProperties == null)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
if (!operationContext.IncomingMessageProperties.ContainsKey(HttpResponseMessageProperty.Name))
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
return operationContext.IncomingMessageProperties[HttpResponseMessageProperty.Name] as HttpResponseMessageProperty;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
HttpResponseMessageProperty EnsureMessageProperty()
|
||
|
{
|
||
|
if (this.MessageProperty == null)
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(
|
||
|
SR2.GetString(SR2.HttpContextNoIncomingMessageProperty, typeof(HttpResponseMessageProperty).Name)));
|
||
|
}
|
||
|
return this.MessageProperty;
|
||
|
}
|
||
|
}
|
||
|
}
|