File: System\Web\Services\Description\HttpPostProtocolReflector.cs
Project: ndp\cdf\src\NetFx20\System.Web.Services\System.Web.Services.csproj (System.Web.Services)
//------------------------------------------------------------------------------
// <copyright file="HttpPostProtocolReflector.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------
namespace System.Web.Services.Description {
 
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    using System.Xml.Schema;
    using System.Collections;
    using System;
    using System.Reflection;
 
    internal class HttpPostProtocolReflector : HttpProtocolReflector {
        //HttpPostProtocolInfo protocolInfo;
 
        //internal HttpPostProtocolInfoReflector() {
            //protocolInfo = new HttpPostProtocolInfo();
            //protocolInfo.Service = new HttpPostServiceInfo();
        //}
 
        public override string ProtocolName { 
            get { return "HttpPost"; } 
        }
 
        protected override void BeginClass() {
            if (IsEmptyBinding)
                return;
            HttpBinding httpBinding = new HttpBinding();
            httpBinding.Verb = "POST";
            Binding.Extensions.Add(httpBinding);
            HttpAddressBinding httpAddressBinding = new HttpAddressBinding();
            httpAddressBinding.Location = ServiceUrl;
            if (this.UriFixups != null)
            {
                this.UriFixups.Add(delegate(Uri current)
                {
                    httpAddressBinding.Location = DiscoveryServerType.CombineUris(current, httpAddressBinding.Location);
                });
            }
            Port.Extensions.Add(httpAddressBinding);
        }
 
        protected override bool ReflectMethod() {
            if (!ReflectMimeParameters()) return false;
            if (!ReflectMimeReturn()) return false;
            HttpOperationBinding httpOperationBinding = new HttpOperationBinding();
            httpOperationBinding.Location = MethodUrl;
            OperationBinding.Extensions.Add(httpOperationBinding);
            return true;
        }
    }
}