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
- DataMember.cs
- OperatingSystem.cs
- StackOverflowException.cs
- AdPostCacheSubstitution.cs
- DescriptionAttribute.cs
- BamlTreeUpdater.cs
- ClientSponsor.cs
- RegexCompilationInfo.cs
- SqlCommand.cs
- AttributeQuery.cs
- DetailsViewDeletedEventArgs.cs
- ReadOnlyCollection.cs
- Lease.cs
- ShapeTypeface.cs
- CacheModeValueSerializer.cs
- bidPrivateBase.cs
- ValidationHelper.cs
- DateTimeValueSerializerContext.cs
- SecurityState.cs
- HierarchicalDataTemplate.cs
- QueueProcessor.cs
- Pipe.cs
- QilFactory.cs
- SizeChangedEventArgs.cs
- HashAlgorithm.cs
- NavigateEvent.cs
- AnonymousIdentificationSection.cs
- SqlColumnizer.cs
- AutoGeneratedField.cs
- Assert.cs
- EntityDataSourceState.cs
- DependencyPropertyDescriptor.cs
- CodeCastExpression.cs
- RunInstallerAttribute.cs
- MsmqInputChannel.cs
- AutoCompleteStringCollection.cs
- ObjectStateEntryDbDataRecord.cs
- ComAdminInterfaces.cs
- FileVersionInfo.cs
- DbConnectionPoolOptions.cs
- SiteMap.cs
- ProfilePropertyMetadata.cs
- VisemeEventArgs.cs
- FilteredReadOnlyMetadataCollection.cs
- SHA256Managed.cs
- DefaultHttpHandler.cs
- BordersPage.cs
- EngineSite.cs
- Validator.cs
- TextAdaptor.cs
- RsaSecurityKey.cs
- CodeDOMProvider.cs
- EventLog.cs
- AxParameterData.cs
- DrawingImage.cs
- Literal.cs
- wmiprovider.cs
- KnownTypeHelper.cs
- DesigntimeLicenseContext.cs
- BatchStream.cs
- Misc.cs
- WmlValidatorAdapter.cs
- StrongNameKeyPair.cs
- ProfileManager.cs
- XamlTypeMapper.cs
- Vector3DIndependentAnimationStorage.cs
- VirtualPathUtility.cs
- XPathDocument.cs
- EDesignUtil.cs
- LinkButton.cs
- CopyNodeSetAction.cs
- ProcessInfo.cs
- ReachPageContentSerializer.cs
- RawStylusInputReport.cs
- Object.cs
- SynchronizedDispatch.cs
- __FastResourceComparer.cs
- ResourceDescriptionAttribute.cs
- OperationResponse.cs
- SecurityCriticalDataForSet.cs
- ButtonChrome.cs
- PropVariant.cs
- HitTestFilterBehavior.cs
- WebPartManager.cs
- StatusBarPanel.cs
- ObjectSecurity.cs
- ScrollableControl.cs
- QilXmlWriter.cs
- HitTestWithGeometryDrawingContextWalker.cs
- System.Data_BID.cs
- XmlCodeExporter.cs
- ToolStripItemImageRenderEventArgs.cs
- CommandDevice.cs
- WindowsScrollBar.cs
- String.cs
- ProfileSection.cs
- PingOptions.cs
- FixedBufferAttribute.cs
- ComponentCommands.cs
- FixedHighlight.cs