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
- DbLambda.cs
- DaylightTime.cs
- Condition.cs
- parserscommon.cs
- GroupQuery.cs
- RepeaterItemEventArgs.cs
- login.cs
- ServicePointManagerElement.cs
- BuildProvidersCompiler.cs
- ValueConversionAttribute.cs
- VerificationAttribute.cs
- TraceHelpers.cs
- HMACSHA384.cs
- ReferencedCollectionType.cs
- BrowserCapabilitiesCodeGenerator.cs
- ExecutorLocksHeldException.cs
- HMACSHA1.cs
- CopyAction.cs
- ExceptionValidationRule.cs
- ActivityExecutor.cs
- RectangleConverter.cs
- QilCloneVisitor.cs
- EntityReference.cs
- ElementUtil.cs
- AxisAngleRotation3D.cs
- PrintPageEvent.cs
- ProxyManager.cs
- MemoryPressure.cs
- HttpBrowserCapabilitiesWrapper.cs
- CodeCommentStatement.cs
- DoubleConverter.cs
- Util.cs
- StrokeIntersection.cs
- PeerResolverBindingElement.cs
- CreateUserErrorEventArgs.cs
- EditingCommands.cs
- CharacterBufferReference.cs
- basenumberconverter.cs
- BitmapImage.cs
- FlowDocumentScrollViewer.cs
- MediaContext.cs
- ProcessStartInfo.cs
- Inflater.cs
- SiteIdentityPermission.cs
- ADMembershipUser.cs
- TextEmbeddedObject.cs
- Rules.cs
- InstanceLockLostException.cs
- XmlBoundElement.cs
- FixedSOMPageConstructor.cs
- FreezableOperations.cs
- errorpatternmatcher.cs
- InputLanguageEventArgs.cs
- HtmlHead.cs
- OdbcUtils.cs
- ContainerVisual.cs
- DropShadowEffect.cs
- HierarchicalDataBoundControl.cs
- ParentUndoUnit.cs
- SQLGuid.cs
- AnnotationHelper.cs
- SecurityKeyIdentifier.cs
- ApplicationInfo.cs
- SqlConnectionHelper.cs
- GroupBoxDesigner.cs
- HyperLinkStyle.cs
- ContainerParagraph.cs
- BasicBrowserDialog.designer.cs
- XmlNamespaceMappingCollection.cs
- BroadcastEventHelper.cs
- Int64.cs
- DirectionalLight.cs
- ColorContextHelper.cs
- DocumentSequenceHighlightLayer.cs
- SimpleTableProvider.cs
- KeyInterop.cs
- SystemColorTracker.cs
- ParseChildrenAsPropertiesAttribute.cs
- PolyBezierSegmentFigureLogic.cs
- ReadOnlyNameValueCollection.cs
- Style.cs
- Errors.cs
- RegexWorker.cs
- ITextView.cs
- DynamicQueryableWrapper.cs
- EventSetter.cs
- UnsafeNativeMethods.cs
- IndentedTextWriter.cs
- CustomAttributeBuilder.cs
- EntityWithKeyStrategy.cs
- ClientSection.cs
- UrlPath.cs
- ShimAsPublicXamlType.cs
- PrintPageEvent.cs
- CodeAttributeArgument.cs
- Token.cs
- COM2ColorConverter.cs
- ClusterRegistryConfigurationProvider.cs
- ReferencedCollectionType.cs
- DataObjectSettingDataEventArgs.cs