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
- ScrollViewer.cs
- Ticks.cs
- UIPermission.cs
- CallbackTimeoutsBehavior.cs
- OperandQuery.cs
- WebHttpSecurity.cs
- CopyAttributesAction.cs
- RequestResizeEvent.cs
- AutoGeneratedField.cs
- SamlAssertionKeyIdentifierClause.cs
- RecognizerStateChangedEventArgs.cs
- SpecularMaterial.cs
- LinqDataSourceSelectEventArgs.cs
- TransactionTable.cs
- FontDifferentiator.cs
- SQLMoneyStorage.cs
- CommandConverter.cs
- ConfigurationValidatorAttribute.cs
- InheritanceContextChangedEventManager.cs
- DbUpdateCommandTree.cs
- HttpRequestWrapper.cs
- ListBox.cs
- NamespaceDecl.cs
- PrintDocument.cs
- Input.cs
- RegisteredExpandoAttribute.cs
- XmlSchemaObject.cs
- AssemblyBuilder.cs
- StateBag.cs
- ManagementBaseObject.cs
- DecimalStorage.cs
- XmlObjectSerializerReadContextComplex.cs
- Drawing.cs
- SystemInformation.cs
- RightsManagementEncryptedStream.cs
- RequestSecurityTokenResponse.cs
- SqlInternalConnection.cs
- MD5.cs
- StaticFileHandler.cs
- DataGridViewCellPaintingEventArgs.cs
- TransformerInfo.cs
- PasswordBoxAutomationPeer.cs
- WebZone.cs
- AffineTransform3D.cs
- GlobalizationSection.cs
- PackageRelationshipSelector.cs
- ObjectListField.cs
- EventRouteFactory.cs
- DispatchChannelSink.cs
- HtmlDocument.cs
- ResolveNameEventArgs.cs
- ReadOnlyMetadataCollection.cs
- Cursors.cs
- CompletionBookmark.cs
- CookieHandler.cs
- AnnotationHelper.cs
- Timer.cs
- SelectionRange.cs
- FileFormatException.cs
- _NegoState.cs
- __Error.cs
- LinkButton.cs
- UTF7Encoding.cs
- ConfigXmlText.cs
- RuleValidation.cs
- SpellerStatusTable.cs
- CompilerResults.cs
- ScrollProviderWrapper.cs
- ToolStripOverflow.cs
- ReachPageContentSerializer.cs
- FontNamesConverter.cs
- UshortList2.cs
- DetailsViewPagerRow.cs
- ReadOnlyPropertyMetadata.cs
- DataSvcMapFile.cs
- XmlMtomReader.cs
- RenderContext.cs
- XPathBinder.cs
- SqlGatherConsumedAliases.cs
- ByeMessageCD1.cs
- StrongNameMembershipCondition.cs
- DropTarget.cs
- CompiledQueryCacheEntry.cs
- GlobalEventManager.cs
- ToolStripDropDownMenu.cs
- NotifyCollectionChangedEventArgs.cs
- WebPartUtil.cs
- SoapObjectInfo.cs
- SizeLimitedCache.cs
- AccessDataSourceView.cs
- OpacityConverter.cs
- Page.cs
- BitArray.cs
- DataProtectionSecurityStateEncoder.cs
- Assert.cs
- HtmlInputHidden.cs
- StateManagedCollection.cs
- IPEndPointCollection.cs
- BitmapData.cs
- MouseButton.cs