Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Compilation / XsdBuildProvider.cs / 3 / XsdBuildProvider.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.IO;
using System.Data;
using System.Data.Design;
using System.Globalization;
using System.Xml;
using System.Xml.Schema;
using System.Reflection;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Web.Hosting;
using System.Web.Configuration;
using System.Collections;
using Util=System.Web.UI.Util;
#if !FEATURE_PAL // FEATURE_PAL does not support System.Data.Design
using TypedDataSetGenerator=System.Data.Design.TypedDataSetGenerator;
#endif // !FEATURE_PAL
[BuildProviderAppliesTo(BuildProviderAppliesTo.Code)]
internal class XsdBuildProvider: BuildProvider {
public override void GenerateCode(AssemblyBuilder assemblyBuilder) {
#if !FEATURE_PAL // FEATURE_PAL does not support System.Data.Design
// Get the namespace that we will use
string ns = Util.GetNamespaceFromVirtualPath(VirtualPathObject);
// We need to use XmlDocument to parse the xsd file is order to open it with the
// correct encoding (VSWhidbey 566286)
XmlDocument doc = new XmlDocument();
using (Stream stream = OpenStream()) {
doc.Load(stream);
}
String content = doc.OuterXml;
// Generate a CodeCompileUnit from the dataset
CodeCompileUnit codeCompileUnit = new CodeCompileUnit();
CodeNamespace codeNamespace = new CodeNamespace(ns);
codeCompileUnit.Namespaces.Add(codeNamespace);
// Devdiv 18365
// Call a different Generate method if compiler version is v3.5
bool isVer35 = CompilationUtil.IsCompilerVersion35(assemblyBuilder.CodeDomProvider.GetType());
if (isVer35) {
TypedDataSetGenerator.GenerateOption generateOptions = TypedDataSetGenerator.GenerateOption.None;
generateOptions |= TypedDataSetGenerator.GenerateOption.HierarchicalUpdate;
generateOptions |= TypedDataSetGenerator.GenerateOption.LinqOverTypedDatasets;
Hashtable customDBProviders = null;
TypedDataSetGenerator.Generate(content, codeCompileUnit, codeNamespace, assemblyBuilder.CodeDomProvider, customDBProviders, generateOptions);
}
else {
TypedDataSetGenerator.Generate(content, codeCompileUnit, codeNamespace, assemblyBuilder.CodeDomProvider);
}
// Add all the assembly references needed by the generated code
if (TypedDataSetGenerator.ReferencedAssemblies != null) {
foreach (Assembly a in TypedDataSetGenerator.ReferencedAssemblies) {
assemblyBuilder.AddAssemblyReference(a);
}
}
// Add the CodeCompileUnit to the compilation
assemblyBuilder.AddCodeCompileUnit(this, codeCompileUnit);
#else // !FEATURE_PAL
throw new NotImplementedException("System.Data.Design - ROTORTODO");
#endif // !FEATURE_PAL
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MethodInfo.cs
- TdsValueSetter.cs
- ResourcesGenerator.cs
- Point.cs
- Site.cs
- EventHandlerList.cs
- CodeTypeReferenceExpression.cs
- MemoryStream.cs
- InputLangChangeEvent.cs
- SkewTransform.cs
- HelpProvider.cs
- FilteredDataSetHelper.cs
- DeviceSpecific.cs
- ProviderException.cs
- PropertyEmitter.cs
- PassportAuthenticationModule.cs
- TextTreeText.cs
- MediaScriptCommandRoutedEventArgs.cs
- ImportOptions.cs
- FormParameter.cs
- Thread.cs
- URL.cs
- CompilerScopeManager.cs
- QilExpression.cs
- Int64AnimationUsingKeyFrames.cs
- BinaryReader.cs
- UpdatableGenericsFeature.cs
- MethodExpression.cs
- SamlConditions.cs
- CharacterHit.cs
- OperationResponse.cs
- KerberosSecurityTokenProvider.cs
- TransformValueSerializer.cs
- ConfigurationPropertyCollection.cs
- MatrixTransform.cs
- validation.cs
- StringKeyFrameCollection.cs
- SafeIUnknown.cs
- LingerOption.cs
- Int32EqualityComparer.cs
- MetadataItemEmitter.cs
- WindowsComboBox.cs
- CodeAttachEventStatement.cs
- RestHandlerFactory.cs
- ToolStripItemImageRenderEventArgs.cs
- SoapSchemaImporter.cs
- EventPrivateKey.cs
- XamlToRtfWriter.cs
- MtomMessageEncoder.cs
- SoapElementAttribute.cs
- TabControlEvent.cs
- TransformPattern.cs
- VectorCollectionConverter.cs
- ToolStripHighContrastRenderer.cs
- EntityDataSourceViewSchema.cs
- SystemResources.cs
- XmlValidatingReaderImpl.cs
- DesignerValidationSummaryAdapter.cs
- Helper.cs
- PolicyValidator.cs
- AnnotationAuthorChangedEventArgs.cs
- WebPartActionVerb.cs
- DragDrop.cs
- SerialReceived.cs
- ApplicationException.cs
- Aggregates.cs
- TriState.cs
- StringComparer.cs
- DataGridView.cs
- TypeContext.cs
- Pts.cs
- QueryExtender.cs
- DesignOnlyAttribute.cs
- RawStylusActions.cs
- Aggregates.cs
- ExpandoClass.cs
- IndependentlyAnimatedPropertyMetadata.cs
- WebSysDisplayNameAttribute.cs
- ProcessModule.cs
- ReaderWriterLock.cs
- ProvidersHelper.cs
- WebSysDescriptionAttribute.cs
- ToolStripMenuItem.cs
- SQLBinary.cs
- UpdateExpressionVisitor.cs
- Types.cs
- EmptyReadOnlyDictionaryInternal.cs
- ProfileInfo.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- TemplatedWizardStep.cs
- ValidatorCollection.cs
- ProfileModule.cs
- TransformerInfo.cs
- OleDbErrorCollection.cs
- NamespaceInfo.cs
- DecimalAnimationUsingKeyFrames.cs
- UnsafeMethods.cs
- MasterPageBuildProvider.cs
- DbConnectionStringCommon.cs
- XmlSchemaAnnotation.cs