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
- DocumentOrderQuery.cs
- ClientSettingsSection.cs
- XmlIlVisitor.cs
- CompositeControl.cs
- KeyGestureValueSerializer.cs
- StorageEntityTypeMapping.cs
- PerfCounterSection.cs
- DBSchemaRow.cs
- ApplicationInfo.cs
- Model3DCollection.cs
- DataGridColumnCollection.cs
- Win32.cs
- VoiceObjectToken.cs
- SystemGatewayIPAddressInformation.cs
- ListControlConvertEventArgs.cs
- MappingException.cs
- FormViewDeletedEventArgs.cs
- FigureParaClient.cs
- TraceSection.cs
- AsyncOperation.cs
- CodeSnippetTypeMember.cs
- DesignRelationCollection.cs
- UidManager.cs
- XmlAttributeCache.cs
- DrawingAttributeSerializer.cs
- ClrProviderManifest.cs
- Pen.cs
- DriveNotFoundException.cs
- DetailsView.cs
- ColumnMapProcessor.cs
- InteropBitmapSource.cs
- TextTreePropertyUndoUnit.cs
- XmlReflectionImporter.cs
- CalendarTable.cs
- ListControlConvertEventArgs.cs
- CacheVirtualItemsEvent.cs
- TypeLibConverter.cs
- SQLMembershipProvider.cs
- UrlPropertyAttribute.cs
- DesignerTransactionCloseEvent.cs
- RemoteWebConfigurationHostServer.cs
- FileNotFoundException.cs
- FieldNameLookup.cs
- XmlHierarchicalDataSourceView.cs
- SafeSerializationManager.cs
- ErrorWebPart.cs
- RolePrincipal.cs
- DataTableMappingCollection.cs
- Translator.cs
- MediaEntryAttribute.cs
- CultureSpecificStringDictionary.cs
- dbenumerator.cs
- ProviderConnectionPointCollection.cs
- TableItemPattern.cs
- ProcessThread.cs
- TextContainer.cs
- LicenseProviderAttribute.cs
- Win32MouseDevice.cs
- ProxyHwnd.cs
- CodeIndexerExpression.cs
- ObjectCache.cs
- ExtensionFile.cs
- SessionSwitchEventArgs.cs
- WinOEToolBoxItem.cs
- AuthorizationContext.cs
- safesecurityhelperavalon.cs
- TreeView.cs
- MediaPlayerState.cs
- MeasureData.cs
- AutomationPatternInfo.cs
- StringComparer.cs
- MergeFailedEvent.cs
- WorkflowLayouts.cs
- ShimAsPublicXamlType.cs
- LogicalExpr.cs
- XamlRtfConverter.cs
- MetadataItemEmitter.cs
- XmlObjectSerializer.cs
- ExeConfigurationFileMap.cs
- Events.cs
- DrawingContextDrawingContextWalker.cs
- LongValidatorAttribute.cs
- SafeFreeMibTable.cs
- BitmapData.cs
- XmlSchemaSimpleTypeUnion.cs
- MemberRestriction.cs
- HWStack.cs
- SpanIndex.cs
- BorderGapMaskConverter.cs
- _OSSOCK.cs
- OracleEncoding.cs
- TextShapeableCharacters.cs
- ModelUIElement3D.cs
- TextDpi.cs
- ScaleTransform.cs
- Win32MouseDevice.cs
- SQLDoubleStorage.cs
- InkCollectionBehavior.cs
- FormView.cs
- DtdParser.cs