Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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 ( 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 } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LayoutSettings.cs
- ResourceBinder.cs
- DragAssistanceManager.cs
- JsonWriter.cs
- Nullable.cs
- ManagedFilter.cs
- IdentifierCreationService.cs
- ObjectTag.cs
- DbProviderConfigurationHandler.cs
- UTF7Encoding.cs
- PassportAuthenticationEventArgs.cs
- PinnedBufferMemoryStream.cs
- DataProviderNameConverter.cs
- ColumnClickEvent.cs
- InvalidCommandTreeException.cs
- EntityDataSourceSelectedEventArgs.cs
- Int32Converter.cs
- RowToParametersTransformer.cs
- XmlKeywords.cs
- StreamResourceInfo.cs
- ApplicationHost.cs
- ProcessHostConfigUtils.cs
- DataGridColumn.cs
- DataPagerFieldItem.cs
- XPathDocument.cs
- XmlSchemaGroupRef.cs
- CheckBoxField.cs
- AttachmentCollection.cs
- SmtpSection.cs
- ObjectDataSourceFilteringEventArgs.cs
- DataGridComboBoxColumn.cs
- UpdateTranslator.cs
- webclient.cs
- NamedElement.cs
- WebCategoryAttribute.cs
- ManagedWndProcTracker.cs
- DatePicker.cs
- MessageHeaderDescriptionCollection.cs
- DependencyProperty.cs
- SchemaHelper.cs
- DataBoundLiteralControl.cs
- OracleConnection.cs
- BitmapEffectDrawingContextState.cs
- ReadOnlyCollectionBase.cs
- EntityDataSourceEntitySetNameItem.cs
- BooleanProjectedSlot.cs
- EditorZone.cs
- TextSearch.cs
- BinaryKeyIdentifierClause.cs
- ListenerConfig.cs
- UnescapedXmlDiagnosticData.cs
- NodeLabelEditEvent.cs
- ISAPIWorkerRequest.cs
- HtmlObjectListAdapter.cs
- GridViewColumnCollectionChangedEventArgs.cs
- COM2EnumConverter.cs
- IItemProperties.cs
- ConstructorArgumentAttribute.cs
- BindableAttribute.cs
- LambdaCompiler.ControlFlow.cs
- HttpHeaderCollection.cs
- ParseElementCollection.cs
- Decoder.cs
- TdsParserSafeHandles.cs
- SafeFileMapViewHandle.cs
- Interlocked.cs
- NotifyCollectionChangedEventArgs.cs
- DesignerDataColumn.cs
- VisualStateGroup.cs
- _NestedMultipleAsyncResult.cs
- EdmComplexTypeAttribute.cs
- securitycriticaldataClass.cs
- Thickness.cs
- LocatorGroup.cs
- SessionStateModule.cs
- WindowsAuthenticationEventArgs.cs
- XmlChildNodes.cs
- EventLogEntry.cs
- SafeTokenHandle.cs
- GiveFeedbackEventArgs.cs
- WmlControlAdapter.cs
- DelayLoadType.cs
- WindowsProgressbar.cs
- InvokePattern.cs
- DocumentOrderComparer.cs
- HMACRIPEMD160.cs
- XmlNavigatorStack.cs
- ColumnReorderedEventArgs.cs
- RadioButton.cs
- StructuralCache.cs
- PageEventArgs.cs
- SmtpTransport.cs
- CultureInfoConverter.cs
- HtmlTextArea.cs
- SizeValueSerializer.cs
- KeyValueConfigurationElement.cs
- SmtpMail.cs
- RegistrySecurity.cs
- ValidationErrorCollection.cs
- UnionExpr.cs