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
- DataGridCommandEventArgs.cs
- FixedSOMPageConstructor.cs
- PaperSource.cs
- ConfigPathUtility.cs
- CustomValidator.cs
- CreateUserErrorEventArgs.cs
- VirtualizingPanel.cs
- XmlSecureResolver.cs
- DeclaredTypeElement.cs
- TransactionChannelListener.cs
- SparseMemoryStream.cs
- PartialCachingControl.cs
- StatusBarItem.cs
- TileBrush.cs
- ServiceParser.cs
- InputLangChangeEvent.cs
- DllNotFoundException.cs
- EntityDescriptor.cs
- ImplicitInputBrush.cs
- TextContainerHelper.cs
- DataServiceStreamProviderWrapper.cs
- FixedLineResult.cs
- SponsorHelper.cs
- SafeNativeMethods.cs
- ProfileSection.cs
- VectorValueSerializer.cs
- ArcSegment.cs
- HttpHandlerAction.cs
- ConstraintStruct.cs
- StateItem.cs
- HeaderedItemsControl.cs
- SByteConverter.cs
- CodeBlockBuilder.cs
- PersonalizationAdministration.cs
- ExtendedProperty.cs
- JoinTreeSlot.cs
- DataGridViewCellStyle.cs
- SafeThemeHandle.cs
- XmlTextReaderImplHelpers.cs
- SafeHandle.cs
- HtmlTableCellCollection.cs
- NameValueSectionHandler.cs
- DiscoveryMessageSequenceGenerator.cs
- DataRelationPropertyDescriptor.cs
- IRCollection.cs
- HtmlListAdapter.cs
- HttpConfigurationSystem.cs
- EventBuilder.cs
- loginstatus.cs
- ConfigUtil.cs
- EdmType.cs
- SQLDateTime.cs
- PingReply.cs
- ToolStripMenuItem.cs
- KerberosReceiverSecurityToken.cs
- WebServiceTypeData.cs
- LocalizedNameDescriptionPair.cs
- EdmItemError.cs
- safex509handles.cs
- CqlWriter.cs
- QuaternionConverter.cs
- WriteTimeStream.cs
- DataStorage.cs
- WsdlInspector.cs
- OrderByLifter.cs
- OleDbConnection.cs
- SpeechUI.cs
- RegistryConfigurationProvider.cs
- HealthMonitoringSection.cs
- DbSource.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompiledXpathExpr.cs
- RealizationDrawingContextWalker.cs
- LightweightCodeGenerator.cs
- Route.cs
- Focus.cs
- SerializationSectionGroup.cs
- KeyInterop.cs
- ColorTypeConverter.cs
- CodeExpressionStatement.cs
- CachedBitmap.cs
- RelationalExpressions.cs
- Int64KeyFrameCollection.cs
- Events.cs
- Relationship.cs
- ImageClickEventArgs.cs
- TransformerInfo.cs
- Wrapper.cs
- ClientProtocol.cs
- RadioButtonList.cs
- HttpListenerElement.cs
- SqlBulkCopyColumnMappingCollection.cs
- DbMetaDataFactory.cs
- RelationshipWrapper.cs
- TabControlAutomationPeer.cs
- StringResourceManager.cs
- ItemContainerProviderWrapper.cs
- UpdateProgress.cs
- ProvideValueServiceProvider.cs
- BitmapCodecInfoInternal.cs