OutgoingWebResponseContext.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Web / OutgoingWebResponseContext.cs / 1 / OutgoingWebResponseContext.cs

                            //------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------
#pragma warning disable 1634, 1691
 
namespace System.ServiceModel.Web
{ 
    using System; 
    using System.Globalization;
    using System.Diagnostics.CodeAnalysis; 
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.ServiceModel.Description;
    using System.ServiceModel.Dispatcher; 
    using System.Net;
    using System.Collections.ObjectModel; 
    using System.Collections.Specialized; 

    public class OutgoingWebResponseContext 
    {
        OperationContext operationContext;
        internal OutgoingWebResponseContext(OperationContext operationContext)
        { 
            Fx.Assert(operationContext != null, "operationContext is null");
            this.operationContext = operationContext; 
        } 

        public long ContentLength 
        { get { return long.Parse(this.MessageProperty.Headers[HttpResponseHeader.ContentLength], CultureInfo.InvariantCulture); }
            set { this.MessageProperty.Headers[HttpResponseHeader.ContentLength] = value.ToString(CultureInfo.InvariantCulture); } }

        public string ContentType 
        { get { return this.MessageProperty.Headers[HttpResponseHeader.ContentType]; }
            set { this.MessageProperty.Headers[HttpResponseHeader.ContentType] = value; } } 
 
        public string ETag
        { get { return this.MessageProperty.Headers[HttpResponseHeader.ETag]; } 
            set { this.MessageProperty.Headers[HttpResponseHeader.ETag] = value; } }

        public WebHeaderCollection Headers
        { get { return this.MessageProperty.Headers; } } 

        public DateTime LastModified 
        { get { return DateTime.Parse(this.MessageProperty.Headers[HttpResponseHeader.LastModified], CultureInfo.InvariantCulture); } 
            set
            { 
                this.MessageProperty.Headers[HttpResponseHeader.LastModified] =
                    (value.Kind == DateTimeKind.Utc ?
                    value.ToString("R", CultureInfo.InvariantCulture) :
                    value.ToUniversalTime().ToString("R", CultureInfo.InvariantCulture)); 
            }
        } 
 
        public string Location
        { 
            get { return this.MessageProperty.Headers[HttpResponseHeader.Location]; }
            set { this.MessageProperty.Headers[HttpResponseHeader.Location] = value; } }

        public HttpStatusCode StatusCode 
        { get {return this.MessageProperty.StatusCode; }
            set {this.MessageProperty.StatusCode = value; } } 
 
        public string StatusDescription
        { get {return this.MessageProperty.StatusDescription; } 
            set {this.MessageProperty.StatusDescription = value; } }

        public bool SuppressEntityBody
        { get { return this.MessageProperty.SuppressEntityBody; } set { this.MessageProperty.SuppressEntityBody = value; } } 

        HttpResponseMessageProperty MessageProperty 
        { get 
            {
                if (!operationContext.OutgoingMessageProperties.ContainsKey(HttpResponseMessageProperty.Name)) 
                {
                    operationContext.OutgoingMessageProperties.Add(HttpResponseMessageProperty.Name, new HttpResponseMessageProperty());
                }
                return operationContext.OutgoingMessageProperties[HttpResponseMessageProperty.Name] as HttpResponseMessageProperty; 
            }
        } 
 
        public void SetStatusAsCreated(Uri locationUri)
        { 
            if (locationUri == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("locationUri");
            } 
            this.StatusCode = HttpStatusCode.Created;
            this.Location = locationUri.ToString(); 
        } 

        public void SetStatusAsNotFound() 
        {
            this.StatusCode = HttpStatusCode.NotFound;
        }
 
        public void SetStatusAsNotFound(string description)
        { 
            this.StatusCode = HttpStatusCode.NotFound; 
            this.StatusDescription = description;
        } 
    }
}


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK