Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Compilation / XsdBuildProvider.cs / 5 / 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 } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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 } } } // 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
- SettingsAttributes.cs
- DefaultTraceListener.cs
- SiteMembershipCondition.cs
- ListItemConverter.cs
- PersonalizationProvider.cs
- ProcessProtocolHandler.cs
- EncodingInfo.cs
- EditingMode.cs
- SqlProfileProvider.cs
- DesignerSelectionListAdapter.cs
- EdgeModeValidation.cs
- KeyedCollection.cs
- TimeZone.cs
- HttpSessionStateWrapper.cs
- Image.cs
- WebConfigurationFileMap.cs
- ViewLoader.cs
- UpdateManifestForBrowserApplication.cs
- RouteItem.cs
- Application.cs
- HtmlValidationSummaryAdapter.cs
- TextStore.cs
- AsyncMethodInvoker.cs
- DebugInfoGenerator.cs
- ObjectCloneHelper.cs
- _HTTPDateParse.cs
- SuspendDesigner.cs
- Compiler.cs
- WindowsTitleBar.cs
- RunInstallerAttribute.cs
- TemplateInstanceAttribute.cs
- ColorConvertedBitmap.cs
- ConnectionManagementSection.cs
- ServiceControllerDesigner.cs
- DetailsViewUpdateEventArgs.cs
- HybridDictionary.cs
- XmlSchemaNotation.cs
- ContextProperty.cs
- RectKeyFrameCollection.cs
- BindingValueChangedEventArgs.cs
- EndpointDispatcherTable.cs
- Relationship.cs
- SourceFileInfo.cs
- PageAdapter.cs
- PointAnimationClockResource.cs
- ParserOptions.cs
- CryptoStream.cs
- DefaultCommandConverter.cs
- TypeConverterAttribute.cs
- PropertyTab.cs
- _OverlappedAsyncResult.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DataSourceXmlSerializer.cs
- XmlWriterSettings.cs
- EntityTemplateFactory.cs
- SimpleFileLog.cs
- KeyedPriorityQueue.cs
- FixedHighlight.cs
- GenericEnumConverter.cs
- HttpRequestBase.cs
- NamedPermissionSet.cs
- SqlBinder.cs
- TraceContextRecord.cs
- ExtenderProviderService.cs
- StandardOleMarshalObject.cs
- DataGridViewCellConverter.cs
- DispatcherProcessingDisabled.cs
- ObjectAnimationBase.cs
- TabControl.cs
- UserInitiatedNavigationPermission.cs
- RuntimeHandles.cs
- Emitter.cs
- DbRetry.cs
- UIElementIsland.cs
- FontFamily.cs
- Walker.cs
- PenThreadWorker.cs
- MonthChangedEventArgs.cs
- BrushConverter.cs
- PropertyManager.cs
- NetPipeSectionData.cs
- HMACSHA384.cs
- EditingScope.cs
- HttpCachePolicyElement.cs
- SimpleWebHandlerParser.cs
- TransactedBatchContext.cs
- SecurityRuntime.cs
- File.cs
- TypeRefElement.cs
- _TimerThread.cs
- Stroke.cs
- RangeBase.cs
- SchemaImporter.cs
- StdValidatorsAndConverters.cs
- SqlUserDefinedTypeAttribute.cs
- GroupQuery.cs
- Base64Encoding.cs
- FloaterParagraph.cs
- BasicCellRelation.cs
- PageParser.cs