Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Description / MimeXmlImporter.cs / 1305376 / MimeXmlImporter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Description { using System.Web.Services.Protocols; using System.Xml.Serialization; using System.Xml.Serialization.Advanced; using System.Xml.Schema; using System.Xml; using System.Data; using System.CodeDom; internal class MimeXmlReturn : MimeReturn { XmlTypeMapping mapping; internal XmlTypeMapping TypeMapping { get { return mapping; } set { mapping = value; } } } internal class MimeXmlImporter : MimeImporter { XmlSchemaImporter importer; XmlCodeExporter exporter; internal override MimeParameterCollection ImportParameters() { return null; } internal override MimeReturn ImportReturn() { MimeContentBinding mimeContentBinding = (MimeContentBinding)ImportContext.OperationBinding.Output.Extensions.Find(typeof(MimeContentBinding)); if (mimeContentBinding != null) { if (!ContentType.MatchesBase(mimeContentBinding.Type, ContentType.TextXml)) { return null; } MimeReturn importedReturn = new MimeReturn(); importedReturn.TypeName = typeof(XmlElement).FullName; importedReturn.ReaderType = typeof(XmlReturnReader); return importedReturn; } MimeXmlBinding mimeXmlBinding = (MimeXmlBinding)ImportContext.OperationBinding.Output.Extensions.Find(typeof(MimeXmlBinding)); if (mimeXmlBinding != null) { MimeXmlReturn importedReturn = new MimeXmlReturn(); MessagePart part; switch (ImportContext.OutputMessage.Parts.Count) { case 0: throw new InvalidOperationException(Res.GetString(Res.MessageHasNoParts1, ImportContext.InputMessage.Name)); case 1: if (mimeXmlBinding.Part == null || mimeXmlBinding.Part.Length == 0) { part = ImportContext.OutputMessage.Parts[0]; } else { part = ImportContext.OutputMessage.FindPartByName(mimeXmlBinding.Part); } break; default: part = ImportContext.OutputMessage.FindPartByName(mimeXmlBinding.Part); break; } importedReturn.TypeMapping = Importer.ImportTypeMapping(part.Element); importedReturn.TypeName = importedReturn.TypeMapping.TypeFullName; importedReturn.ReaderType = typeof(XmlReturnReader); Exporter.AddMappingMetadata(importedReturn.Attributes, importedReturn.TypeMapping, string.Empty); return importedReturn; } return null; } XmlSchemaImporter Importer { get { if (importer == null) { importer = new XmlSchemaImporter(ImportContext.ConcreteSchemas, ImportContext.ServiceImporter.CodeGenerationOptions, ImportContext.ServiceImporter.CodeGenerator, ImportContext.ImportContext); foreach (Type extensionType in ImportContext.ServiceImporter.Extensions) { importer.Extensions.Add(extensionType.FullName, extensionType); } importer.Extensions.Add(new System.Data.Design.TypedDataSetSchemaImporterExtension()); importer.Extensions.Add(new DataSetSchemaImporterExtension()); } return importer; } } XmlCodeExporter Exporter { get { if (exporter == null) exporter = new XmlCodeExporter(ImportContext.CodeNamespace, ImportContext.ServiceImporter.CodeCompileUnit, ImportContext.ServiceImporter.CodeGenerator, ImportContext.ServiceImporter.CodeGenerationOptions, ImportContext.ExportContext); return exporter; } } internal override void GenerateCode(MimeReturn[] importedReturns, MimeParameterCollection[] importedParameters) { for (int i = 0; i < importedReturns.Length; i++) { if (importedReturns[i] is MimeXmlReturn) { GenerateCode((MimeXmlReturn)importedReturns[i]); } } } void GenerateCode(MimeXmlReturn importedReturn) { Exporter.ExportTypeMapping(importedReturn.TypeMapping); } internal override void AddClassMetadata(CodeTypeDeclaration codeClass) { foreach (CodeAttributeDeclaration attribute in Exporter.IncludeMetadata) { codeClass.CustomAttributes.Add(attribute); } } } } // 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
- Route.cs
- ComboBox.cs
- ReaderOutput.cs
- DbConnectionStringCommon.cs
- IssuanceLicense.cs
- StringAnimationUsingKeyFrames.cs
- ObjectIDGenerator.cs
- HttpCachePolicyElement.cs
- InfoCardRSACryptoProvider.cs
- ExpressionBindingCollection.cs
- ComplexPropertyEntry.cs
- ItemContainerGenerator.cs
- ReadOnlyPropertyMetadata.cs
- ColumnHeaderConverter.cs
- XDeferredAxisSource.cs
- TableRow.cs
- RepeatEnumerable.cs
- FixedFlowMap.cs
- CollectionsUtil.cs
- HttpRequestTraceRecord.cs
- LogSwitch.cs
- DataGridViewComboBoxColumnDesigner.cs
- DiffuseMaterial.cs
- DialogDivider.cs
- DataServiceRequestException.cs
- ExternalFile.cs
- TemplateKey.cs
- CodeEntryPointMethod.cs
- StrokeDescriptor.cs
- DES.cs
- CalendarItem.cs
- UnsignedPublishLicense.cs
- BindingNavigator.cs
- SiteIdentityPermission.cs
- SR.Designer.cs
- LinqDataSourceView.cs
- ServicePoint.cs
- DiagnosticTrace.cs
- Constraint.cs
- BindableTemplateBuilder.cs
- MissingMemberException.cs
- CaseInsensitiveHashCodeProvider.cs
- WebHttpElement.cs
- login.cs
- CopyNodeSetAction.cs
- PopupControlService.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- TreeNodeSelectionProcessor.cs
- UrlMappingsModule.cs
- GridPatternIdentifiers.cs
- ChameleonKey.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- StringUtil.cs
- BuildProvider.cs
- HttpListenerResponse.cs
- StylusOverProperty.cs
- DataGridViewCellConverter.cs
- CommandCollectionEditor.cs
- XsltInput.cs
- XDRSchema.cs
- PageParser.cs
- AlternationConverter.cs
- PartManifestEntry.cs
- EncoderReplacementFallback.cs
- future.cs
- InputReportEventArgs.cs
- AttachInfo.cs
- AssociationTypeEmitter.cs
- SystemFonts.cs
- UITypeEditor.cs
- ExcCanonicalXml.cs
- SvcMapFileLoader.cs
- Point3D.cs
- ListBindableAttribute.cs
- DataControlFieldsEditor.cs
- ListViewItem.cs
- MiniLockedBorderGlyph.cs
- EntitySet.cs
- DocumentsTrace.cs
- WhitespaceRuleReader.cs
- ToolTipAutomationPeer.cs
- ComPlusServiceLoader.cs
- Operator.cs
- ResolveMatches11.cs
- EventListenerClientSide.cs
- SignedInfo.cs
- StoreItemCollection.cs
- ConnectionInterfaceCollection.cs
- InvalidComObjectException.cs
- ReadOnlyTernaryTree.cs
- SiteMapNodeItem.cs
- XPathItem.cs
- AvtEvent.cs
- StringArrayConverter.cs
- Point4DConverter.cs
- ActivityExecutorSurrogate.cs
- XmlAttributeProperties.cs
- LoaderAllocator.cs
- RadialGradientBrush.cs
- CurrencyManager.cs