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
- CoTaskMemSafeHandle.cs
- NonSerializedAttribute.cs
- PrePrepareMethodAttribute.cs
- externdll.cs
- TextEditorSelection.cs
- FocusChangedEventArgs.cs
- ThrowHelper.cs
- _AcceptOverlappedAsyncResult.cs
- UTF32Encoding.cs
- ObjectQueryProvider.cs
- ViewCellRelation.cs
- BinarySerializer.cs
- EncryptedHeader.cs
- TextBoxRenderer.cs
- SecureStringHasher.cs
- XamlRtfConverter.cs
- PageParserFilter.cs
- ElementUtil.cs
- ContainerParagraph.cs
- HttpCachePolicyWrapper.cs
- DataBoundControlHelper.cs
- ModuleConfigurationInfo.cs
- ControlHelper.cs
- XmlSchemaCollection.cs
- DuplexChannelBinder.cs
- ConsoleCancelEventArgs.cs
- DbExpressionRules.cs
- TiffBitmapDecoder.cs
- WebPartsPersonalization.cs
- ReadOnlyCollection.cs
- SqlMethodAttribute.cs
- SpotLight.cs
- RoleGroupCollection.cs
- HttpChannelBindingToken.cs
- SigningProgress.cs
- unitconverter.cs
- Interlocked.cs
- CustomErrorsSection.cs
- SqlConnectionString.cs
- MemberJoinTreeNode.cs
- TypeGeneratedEventArgs.cs
- counter.cs
- ActionItem.cs
- DesignParameter.cs
- MobileControlsSection.cs
- ProxyWebPart.cs
- DoubleIndependentAnimationStorage.cs
- DeferredSelectedIndexReference.cs
- LassoHelper.cs
- Message.cs
- MouseWheelEventArgs.cs
- COM2FontConverter.cs
- DataGridViewLinkCell.cs
- Int32Animation.cs
- Win32Native.cs
- WhileDesigner.xaml.cs
- XPathDocumentBuilder.cs
- MetadataItemSerializer.cs
- XmlCharacterData.cs
- FieldTemplateUserControl.cs
- NativeWrapper.cs
- VirtualizedItemProviderWrapper.cs
- ComplexObject.cs
- ProfilePropertySettingsCollection.cs
- SettingsSection.cs
- ScriptIgnoreAttribute.cs
- TextSpanModifier.cs
- UnionCqlBlock.cs
- TraceUtility.cs
- ReadOnlyDictionary.cs
- StaticDataManager.cs
- EdmError.cs
- DispatchChannelSink.cs
- ListBase.cs
- XmlSecureResolver.cs
- CookieParameter.cs
- FormsAuthenticationEventArgs.cs
- errorpatternmatcher.cs
- XmlSchemaAll.cs
- ByteFacetDescriptionElement.cs
- DataSourceControl.cs
- InputBinding.cs
- CalendarDay.cs
- SecurityPolicySection.cs
- SocketStream.cs
- MobileControlPersister.cs
- DecoderBestFitFallback.cs
- EntityTypeEmitter.cs
- DifferencingCollection.cs
- ChtmlCalendarAdapter.cs
- DirectionalLight.cs
- ComEventsInfo.cs
- CollectionViewGroup.cs
- AutoGeneratedField.cs
- EventLogEntryCollection.cs
- IODescriptionAttribute.cs
- ILGenerator.cs
- WebErrorHandler.cs
- mediaeventargs.cs
- CorrelationManager.cs