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
- DataRecordObjectView.cs
- unsafenativemethodsother.cs
- StrongName.cs
- ExecutionTracker.cs
- AssemblyUtil.cs
- BuildProvidersCompiler.cs
- itemelement.cs
- ResourceWriter.cs
- ApplicationFileParser.cs
- ToolTipAutomationPeer.cs
- SqlMethodCallConverter.cs
- DictionaryChange.cs
- HtmlControl.cs
- ControlBuilderAttribute.cs
- httpstaticobjectscollection.cs
- ViewGenResults.cs
- CallbackHandler.cs
- ExpressionTextBoxAutomationPeer.cs
- ObjectStateEntryDbDataRecord.cs
- MarshalByRefObject.cs
- EdmItemError.cs
- Dump.cs
- SafeLocalAllocation.cs
- IIS7WorkerRequest.cs
- Stack.cs
- TextRunProperties.cs
- GridViewCancelEditEventArgs.cs
- VisualProxy.cs
- MyContact.cs
- CommonDialog.cs
- ContentType.cs
- XmlSchemaGroupRef.cs
- AddInProcess.cs
- LoginUtil.cs
- WebPartEventArgs.cs
- GridToolTip.cs
- TogglePattern.cs
- Validator.cs
- ManifestBasedResourceGroveler.cs
- PropertyEmitter.cs
- ModifierKeysConverter.cs
- EditingCoordinator.cs
- QueueProcessor.cs
- ExtractorMetadata.cs
- EDesignUtil.cs
- ValueQuery.cs
- CultureSpecificCharacterBufferRange.cs
- GifBitmapDecoder.cs
- DocumentViewerAutomationPeer.cs
- Config.cs
- ViewManager.cs
- ResourceAssociationTypeEnd.cs
- Timer.cs
- OdbcTransaction.cs
- DataSourceCollectionBase.cs
- WebPartMovingEventArgs.cs
- CreateUserErrorEventArgs.cs
- IpcClientChannel.cs
- DataControlPagerLinkButton.cs
- HttpEncoderUtility.cs
- TraceUtility.cs
- ChannelServices.cs
- _SSPISessionCache.cs
- XPathDocumentBuilder.cs
- SystemColorTracker.cs
- ConstraintEnumerator.cs
- ToolboxItemSnapLineBehavior.cs
- PasswordRecovery.cs
- GreenMethods.cs
- RestHandler.cs
- PasswordPropertyTextAttribute.cs
- HtmlHistory.cs
- AlphaSortedEnumConverter.cs
- WorkingDirectoryEditor.cs
- ISAPIWorkerRequest.cs
- EventLogPermission.cs
- DataGridParentRows.cs
- DataGridViewBand.cs
- ParallelEnumerable.cs
- DataErrorValidationRule.cs
- SqlConnectionString.cs
- DeflateStreamAsyncResult.cs
- BuildResult.cs
- ComponentChangedEvent.cs
- TemplateKey.cs
- RepeaterDataBoundAdapter.cs
- Transform3D.cs
- RightsManagementInformation.cs
- RoutingExtension.cs
- WebPageTraceListener.cs
- AdRotator.cs
- StreamUpdate.cs
- SizeConverter.cs
- hebrewshape.cs
- LambdaCompiler.Logical.cs
- PresentationUIStyleResources.cs
- BlockUIContainer.cs
- SettingsBindableAttribute.cs
- Buffer.cs
- BitmapDecoder.cs