e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
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;
|
|
}
|
|
}
|
|
}
|