Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Description / SoapHttpTransportImporter.cs / 1305376 / SoapHttpTransportImporter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Description { using System.CodeDom; using System.Web.Services.Protocols; internal class SoapHttpTransportImporter : SoapTransportImporter { public override bool IsSupportedTransport(string transport) { return transport == SoapBinding.HttpTransport; } public override void ImportClass() { // grab this here so it gets marked "handled" for both client and server SoapAddressBinding soapAddress = ImportContext.Port == null ? null : (SoapAddressBinding)ImportContext.Port.Extensions.Find(typeof(SoapAddressBinding)); if (ImportContext.Style == ServiceDescriptionImportStyle.Client) { ImportContext.CodeTypeDeclaration.BaseTypes.Add(typeof(SoapHttpClientProtocol).FullName); CodeConstructor ctor = WebCodeGenerator.AddConstructor(ImportContext.CodeTypeDeclaration, new string[0], new string[0], null, CodeFlags.IsPublic); ctor.Comments.Add(new CodeCommentStatement(Res.GetString(Res.CodeRemarks), true)); bool soap11 = true; if (ImportContext is Soap12ProtocolImporter) { soap11 = false; // add version code CodeTypeReferenceExpression versionEnumTypeReference = new CodeTypeReferenceExpression(typeof(SoapProtocolVersion)); CodeFieldReferenceExpression versionEnumFieldReference = new CodeFieldReferenceExpression(versionEnumTypeReference, Enum.Format(typeof(SoapProtocolVersion), SoapProtocolVersion.Soap12, "G")); CodePropertyReferenceExpression versionPropertyReference = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), "SoapVersion"); CodeAssignStatement assignVersionStatement = new CodeAssignStatement(versionPropertyReference, versionEnumFieldReference); ctor.Statements.Add(assignVersionStatement); } ServiceDescription serviceDescription = ImportContext.Binding.ServiceDescription; string url = (soapAddress != null) ? soapAddress.Location : null; string urlKey = serviceDescription.AppSettingUrlKey; string baseUrl = serviceDescription.AppSettingBaseUrl; ProtocolImporterUtil.GenerateConstructorStatements(ctor, url, urlKey, baseUrl, soap11 && !ImportContext.IsEncodedBinding); } else if (ImportContext.Style == ServiceDescriptionImportStyle.Server) { ImportContext.CodeTypeDeclaration.BaseTypes.Add(typeof(WebService).FullName); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Description { using System.CodeDom; using System.Web.Services.Protocols; internal class SoapHttpTransportImporter : SoapTransportImporter { public override bool IsSupportedTransport(string transport) { return transport == SoapBinding.HttpTransport; } public override void ImportClass() { // grab this here so it gets marked "handled" for both client and server SoapAddressBinding soapAddress = ImportContext.Port == null ? null : (SoapAddressBinding)ImportContext.Port.Extensions.Find(typeof(SoapAddressBinding)); if (ImportContext.Style == ServiceDescriptionImportStyle.Client) { ImportContext.CodeTypeDeclaration.BaseTypes.Add(typeof(SoapHttpClientProtocol).FullName); CodeConstructor ctor = WebCodeGenerator.AddConstructor(ImportContext.CodeTypeDeclaration, new string[0], new string[0], null, CodeFlags.IsPublic); ctor.Comments.Add(new CodeCommentStatement(Res.GetString(Res.CodeRemarks), true)); bool soap11 = true; if (ImportContext is Soap12ProtocolImporter) { soap11 = false; // add version code CodeTypeReferenceExpression versionEnumTypeReference = new CodeTypeReferenceExpression(typeof(SoapProtocolVersion)); CodeFieldReferenceExpression versionEnumFieldReference = new CodeFieldReferenceExpression(versionEnumTypeReference, Enum.Format(typeof(SoapProtocolVersion), SoapProtocolVersion.Soap12, "G")); CodePropertyReferenceExpression versionPropertyReference = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), "SoapVersion"); CodeAssignStatement assignVersionStatement = new CodeAssignStatement(versionPropertyReference, versionEnumFieldReference); ctor.Statements.Add(assignVersionStatement); } ServiceDescription serviceDescription = ImportContext.Binding.ServiceDescription; string url = (soapAddress != null) ? soapAddress.Location : null; string urlKey = serviceDescription.AppSettingUrlKey; string baseUrl = serviceDescription.AppSettingBaseUrl; ProtocolImporterUtil.GenerateConstructorStatements(ctor, url, urlKey, baseUrl, soap11 && !ImportContext.IsEncodedBinding); } else if (ImportContext.Style == ServiceDescriptionImportStyle.Server) { ImportContext.CodeTypeDeclaration.BaseTypes.Add(typeof(WebService).FullName); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IndicShape.cs
- ListParaClient.cs
- SecureEnvironment.cs
- DirectionalLight.cs
- FieldAccessException.cs
- GridItemPatternIdentifiers.cs
- DescendantQuery.cs
- SymmetricKeyWrap.cs
- EnumDataContract.cs
- ModelPropertyCollectionImpl.cs
- Native.cs
- ReverseInheritProperty.cs
- RestHandler.cs
- DefaultBindingPropertyAttribute.cs
- ListBindingConverter.cs
- ThreadStaticAttribute.cs
- XmlSchemaSequence.cs
- regiisutil.cs
- QueryableDataSourceEditData.cs
- InstanceKey.cs
- HebrewCalendar.cs
- XmlFormatExtensionAttribute.cs
- DeclaredTypeElement.cs
- WebSysDescriptionAttribute.cs
- XmlILAnnotation.cs
- CharacterString.cs
- ProfileService.cs
- PeerNearMe.cs
- CallContext.cs
- FileSystemWatcher.cs
- Transform3D.cs
- Image.cs
- LocationEnvironment.cs
- UriParserTemplates.cs
- FrameworkObject.cs
- PointAnimationUsingPath.cs
- _HelperAsyncResults.cs
- Base64Encoder.cs
- TreeViewItemAutomationPeer.cs
- SelectionProcessor.cs
- ImportCatalogPart.cs
- CodeCatchClause.cs
- RSAOAEPKeyExchangeFormatter.cs
- DiscardableAttribute.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- EditorAttribute.cs
- DbConnectionStringCommon.cs
- GatewayDefinition.cs
- XamlInt32CollectionSerializer.cs
- ConstructorNeedsTagAttribute.cs
- TextServicesPropertyRanges.cs
- Stylus.cs
- StyleCollection.cs
- SystemGatewayIPAddressInformation.cs
- Accessible.cs
- DefaultTextStore.cs
- TransformGroup.cs
- x509store.cs
- StaticResourceExtension.cs
- SqlUserDefinedAggregateAttribute.cs
- SeverityFilter.cs
- _TimerThread.cs
- XmlValueConverter.cs
- DataGridLinkButton.cs
- DataGridViewComboBoxColumn.cs
- Delay.cs
- OSFeature.cs
- SqlInternalConnection.cs
- ProtocolState.cs
- LocationUpdates.cs
- WebPageTraceListener.cs
- Activator.cs
- EventHandlerList.cs
- NumericPagerField.cs
- DataTableCollection.cs
- CompositeFontFamily.cs
- Figure.cs
- Int64Converter.cs
- StateDesignerConnector.cs
- BitmapMetadataBlob.cs
- RegexWorker.cs
- CriticalExceptions.cs
- UpdateException.cs
- DispatcherSynchronizationContext.cs
- CalendarDay.cs
- DuplicateContext.cs
- DataControlField.cs
- TextServicesDisplayAttributePropertyRanges.cs
- SerializationTrace.cs
- FixedPosition.cs
- ClientConvert.cs
- HMACSHA1.cs
- DropSource.cs
- OdbcConnectionFactory.cs
- WmlValidationSummaryAdapter.cs
- AuthenticationConfig.cs
- ResolveDuplexCD1AsyncResult.cs
- HorizontalAlignConverter.cs
- TTSVoice.cs
- CalendarItem.cs