Code:
/ FX-1434 / FX-1434 / 1.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
- AppDomainShutdownMonitor.cs
- DocumentOrderComparer.cs
- XmlEnumAttribute.cs
- HttpCacheVary.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- ExecutionEngineException.cs
- PeerTransportSecurityElement.cs
- OutputBuffer.cs
- HtmlSelectionListAdapter.cs
- BaseCodePageEncoding.cs
- BasicHttpSecurityElement.cs
- SecurityState.cs
- DefaultHttpHandler.cs
- Tuple.cs
- PolygonHotSpot.cs
- BamlVersionHeader.cs
- OdbcException.cs
- SafeNativeMethods.cs
- AdPostCacheSubstitution.cs
- DesignOnlyAttribute.cs
- EasingKeyFrames.cs
- ApplicationProxyInternal.cs
- EntityDataSourceContainerNameItem.cs
- UriSectionData.cs
- ResourceReader.cs
- DuplexChannelFactory.cs
- Rect3D.cs
- TextRunProperties.cs
- ParallelTimeline.cs
- WindowsListViewScroll.cs
- xmlfixedPageInfo.cs
- SHA512Managed.cs
- ColumnResult.cs
- GZipStream.cs
- QueryOpeningEnumerator.cs
- Stream.cs
- SortKey.cs
- StrongNameIdentityPermission.cs
- EventMap.cs
- XomlCompilerError.cs
- ResolvedKeyFrameEntry.cs
- _NTAuthentication.cs
- GenericTypeParameterBuilder.cs
- EdmMember.cs
- ToolStripLocationCancelEventArgs.cs
- _AuthenticationState.cs
- EntityTypeEmitter.cs
- Int64.cs
- CodeTypeReferenceCollection.cs
- MDIWindowDialog.cs
- GrammarBuilderRuleRef.cs
- AmbientProperties.cs
- Msec.cs
- TextTreeUndoUnit.cs
- LockedHandleGlyph.cs
- ByteRangeDownloader.cs
- ColorBlend.cs
- ProxyRpc.cs
- PropagatorResult.cs
- ReferenceEqualityComparer.cs
- ResourcesBuildProvider.cs
- ActiveXContainer.cs
- filewebrequest.cs
- BrowserTree.cs
- ListenerConfig.cs
- HtmlMeta.cs
- HMACSHA1.cs
- WorkflowInstanceSuspendedRecord.cs
- SchemaCollectionPreprocessor.cs
- ResourceContainer.cs
- Trace.cs
- SymbolEqualComparer.cs
- HTMLTagNameToTypeMapper.cs
- InlineCollection.cs
- SqlDataSourceCustomCommandPanel.cs
- SignatureHelper.cs
- XmlSchemaFacet.cs
- SelectedCellsChangedEventArgs.cs
- MenuScrollingVisibilityConverter.cs
- SqlHelper.cs
- DataPagerFieldItem.cs
- DataGridViewComboBoxColumn.cs
- XmlStreamNodeWriter.cs
- WindowsListViewGroup.cs
- OracleTransaction.cs
- ListViewDataItem.cs
- ToolConsole.cs
- XPathNodeInfoAtom.cs
- StringCollection.cs
- HttpRuntime.cs
- DataBoundLiteralControl.cs
- ResolveDuplexAsyncResult.cs
- TextParagraph.cs
- ListView.cs
- RepeatBehavior.cs
- RuleSettingsCollection.cs
- SubclassTypeValidatorAttribute.cs
- CompileXomlTask.cs
- ZoneMembershipCondition.cs
- ResolvedKeyFrameEntry.cs