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
- CodeExpressionStatement.cs
- _DomainName.cs
- ComponentDispatcher.cs
- DynamicObjectAccessor.cs
- ConditionalDesigner.cs
- DependencyObjectProvider.cs
- JoinTreeSlot.cs
- UniformGrid.cs
- TextViewBase.cs
- SqlFileStream.cs
- VBCodeProvider.cs
- Control.cs
- Module.cs
- AdvancedBindingEditor.cs
- Int64AnimationUsingKeyFrames.cs
- Matrix3DStack.cs
- CurrentChangedEventManager.cs
- ValidationRuleCollection.cs
- FontUnit.cs
- __ConsoleStream.cs
- SQLDateTime.cs
- DoubleLinkListEnumerator.cs
- DbXmlEnabledProviderManifest.cs
- WebBrowserSiteBase.cs
- WindowsSolidBrush.cs
- LayoutEngine.cs
- SqlBuffer.cs
- PointF.cs
- SafeFileHandle.cs
- ConfigXmlComment.cs
- ValidationError.cs
- CellTreeSimplifier.cs
- Ref.cs
- NamespaceMapping.cs
- EntitySqlQueryBuilder.cs
- PropertyPathConverter.cs
- HttpApplication.cs
- _LoggingObject.cs
- TokenCreationParameter.cs
- StorageScalarPropertyMapping.cs
- EndOfStreamException.cs
- XmlConvert.cs
- DataServiceHost.cs
- NameObjectCollectionBase.cs
- SqlDataSourceConfigureFilterForm.cs
- XPathScanner.cs
- FontSource.cs
- StackOverflowException.cs
- DataSet.cs
- XPathChildIterator.cs
- Vector3DConverter.cs
- DiscoveryDocumentSerializer.cs
- VisualBrush.cs
- GraphicsPath.cs
- ImmComposition.cs
- wmiutil.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- Page.cs
- CodeBinaryOperatorExpression.cs
- storepermissionattribute.cs
- DoWorkEventArgs.cs
- GridItemCollection.cs
- BuildProviderCollection.cs
- Int32Animation.cs
- ObjectStateEntryDbDataRecord.cs
- LinkArea.cs
- PersistenceTypeAttribute.cs
- ObjectDataSourceSelectingEventArgs.cs
- ClientSettingsProvider.cs
- XmlEncodedRawTextWriter.cs
- ObjectStateEntry.cs
- OpenFileDialog.cs
- GeneralTransformGroup.cs
- DependencyPropertyDescriptor.cs
- XmlNodeComparer.cs
- DesignerHelpers.cs
- WeakReference.cs
- EpmContentSerializerBase.cs
- ValidationError.cs
- AttachedAnnotation.cs
- BitmapCodecInfo.cs
- coordinator.cs
- HttpProfileBase.cs
- ValidationSummary.cs
- SecurityToken.cs
- ToolBarOverflowPanel.cs
- CheckBox.cs
- BaseContextMenu.cs
- BoolExpressionVisitors.cs
- SiteMapDataSourceDesigner.cs
- ValueProviderWrapper.cs
- ScriptReferenceBase.cs
- ComboBox.cs
- ContractTypeNameElement.cs
- ArithmeticException.cs
- SmiEventStream.cs
- FirewallWrapper.cs
- XmlQuerySequence.cs
- DataGridViewCellLinkedList.cs
- TextCharacters.cs