Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- HwndProxyElementProvider.cs
- SqlMultiplexer.cs
- ActivityExecutor.cs
- ListMarkerLine.cs
- LazyTextWriterCreator.cs
- ELinqQueryState.cs
- ElementHostPropertyMap.cs
- ToolBarTray.cs
- Connector.cs
- Win32Native.cs
- CheckBoxPopupAdapter.cs
- TargetConverter.cs
- Vector3D.cs
- StructuralCache.cs
- DataColumnMapping.cs
- Help.cs
- AutomationElementIdentifiers.cs
- PaperSource.cs
- InkCanvasSelection.cs
- CommentEmitter.cs
- AppDomainProtocolHandler.cs
- OracleRowUpdatedEventArgs.cs
- BaseTemplateBuildProvider.cs
- PairComparer.cs
- ObjectPersistData.cs
- ToolStripContentPanel.cs
- WindowsSlider.cs
- ConnectionConsumerAttribute.cs
- AsyncCompletedEventArgs.cs
- SrgsRuleRef.cs
- CodeCommentStatementCollection.cs
- GenericTextProperties.cs
- Identity.cs
- EntityProxyTypeInfo.cs
- DefaultEventAttribute.cs
- SvcMapFileLoader.cs
- CheckedPointers.cs
- SpeakProgressEventArgs.cs
- GeneralTransformGroup.cs
- XsdDuration.cs
- ErrorFormatter.cs
- Signature.cs
- NewArrayExpression.cs
- Utils.cs
- NullExtension.cs
- ExecutionEngineException.cs
- SharedMemory.cs
- DynamicMetaObjectBinder.cs
- ValidationPropertyAttribute.cs
- SecurityUtils.cs
- DesignRelation.cs
- ReverseInheritProperty.cs
- MyContact.cs
- FixedTextPointer.cs
- WorkflowEnvironment.cs
- DataGridViewCellValidatingEventArgs.cs
- DescendantBaseQuery.cs
- BitmapData.cs
- AbstractDataSvcMapFileLoader.cs
- PrintControllerWithStatusDialog.cs
- CodeDirectionExpression.cs
- InvalidDataException.cs
- ValueChangedEventManager.cs
- ControlTemplate.cs
- HtmlTextViewAdapter.cs
- DataTemplate.cs
- NativeMethods.cs
- MappingMetadataHelper.cs
- EncodingDataItem.cs
- SqlLiftWhereClauses.cs
- OdbcFactory.cs
- StringSource.cs
- MobileContainerDesigner.cs
- CompensationHandlingFilter.cs
- sortedlist.cs
- DocumentApplicationJournalEntryEventArgs.cs
- HttpHandlersSection.cs
- DataBoundControlHelper.cs
- TempFiles.cs
- Site.cs
- SocketAddress.cs
- DataGridViewSortCompareEventArgs.cs
- EntityTransaction.cs
- XmlSigningNodeWriter.cs
- SqlTypesSchemaImporter.cs
- ByteRangeDownloader.cs
- RoleManagerEventArgs.cs
- ReadOnlyCollectionBase.cs
- XmlSerializableWriter.cs
- UpdatableWrapper.cs
- SafeFileMapViewHandle.cs
- BrowsableAttribute.cs
- Directory.cs
- StylusPlugInCollection.cs
- ExpressionConverter.cs
- XslVisitor.cs
- KnownAssembliesSet.cs
- SqlDataReader.cs
- ExtensionWindowHeader.cs
- OletxTransactionManager.cs