Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / AspNet / EntityDesignerBuildProvider.cs / 1305376 / EntityDesignerBuildProvider.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.CodeDom; using System.CodeDom.Compiler; using System.Globalization; using System.IO; using System.Text; using System.Web.Hosting; using System.Web.Compilation; using System.Xml; using System.Data.Metadata.Edm; namespace System.Data.Entity.Design.AspNet { ////// The ASP .NET Build provider for the CSDL in ADO .NET /// /// [BuildProviderAppliesTo(BuildProviderAppliesTo.Code)] public class EntityDesignerBuildProvider : System.Web.Compilation.BuildProvider { ////// Default constructor /// public EntityDesignerBuildProvider() { } ////// We want ASP .NET to always reset the app domain when we have to rebuild /// /// ///public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } /// /// Extract the CSDL, SSDL and MSL nodes from the EDMX file and store them /// as embedded resources /// /// public override void GenerateCode(AssemblyBuilder assemblyBuilder) { using (StreamReader edmxInputStream = new StreamReader(VirtualPathProvider.OpenFile(base.VirtualPath))) { // load up an XML document representing the edmx file XmlElement conceptualSchemaElement; XmlElement mappingElement; XmlElement storageSchemaElement; string embedAsResourcePropertyValue; EntityDesignerUtils.ExtractConceptualMappingAndStorageNodes(edmxInputStream, out conceptualSchemaElement, out mappingElement, out storageSchemaElement, out embedAsResourcePropertyValue); if (null == conceptualSchemaElement) { throw new XmlException("No Conceptual Schema node to embed as a resource", null, 0, 0); } if (null == storageSchemaElement) { throw new XmlException("No Storage Schema node to embed as a resource", null, 0, 0); } if (null == mappingElement) { throw new XmlException("No Mapping node to embed as a resource", null, 0, 0); } // construct output paths where the CSDL/MSL/SSDL resources will be placed string virtualPathPrefix = base.VirtualPath.Replace(EntityDesignerUtils._edmxFileExtension, String.Empty); string csdlResourceName = BuildProviderUtils.GetResourceNameForVirtualPath(virtualPathPrefix + XmlConstants.CSpaceSchemaExtension); string ssdlResourceName = BuildProviderUtils.GetResourceNameForVirtualPath(virtualPathPrefix + XmlConstants.SSpaceSchemaExtension); string mslResourceName = BuildProviderUtils.GetResourceNameForVirtualPath(virtualPathPrefix + XmlConstants.CSSpaceSchemaExtension); SetupEmbeddedResource(assemblyBuilder, this, conceptualSchemaElement, csdlResourceName); SetupEmbeddedResource(assemblyBuilder, this, storageSchemaElement, ssdlResourceName); SetupEmbeddedResource(assemblyBuilder, this, mappingElement, mslResourceName); } } private static void SetupEmbeddedResource(AssemblyBuilder assemblyBuilder, BuildProvider prov, XmlElement xmlElement, string resourceName) { using (Stream resStream = assemblyBuilder.CreateEmbeddedResource(prov, resourceName)) { EntityDesignerUtils.OutputXmlElementToStream(xmlElement, resStream); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LookupNode.cs
- DataGridViewCheckBoxCell.cs
- SpecialFolderEnumConverter.cs
- StaticSiteMapProvider.cs
- InstanceDescriptor.cs
- ViewManager.cs
- ConfigurationSettings.cs
- CheckedPointers.cs
- XmlILIndex.cs
- CFGGrammar.cs
- RepeatButtonAutomationPeer.cs
- EntityDataSourceDataSelectionPanel.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- WebPartChrome.cs
- DateRangeEvent.cs
- IOException.cs
- SimpleLine.cs
- EntityKey.cs
- ColumnWidthChangingEvent.cs
- PathNode.cs
- GridSplitterAutomationPeer.cs
- NativeRightsManagementAPIsStructures.cs
- WebPartTransformerCollection.cs
- BitmapEffectvisualstate.cs
- XmlWriterTraceListener.cs
- RightsManagementEncryptionTransform.cs
- EventProxy.cs
- DbProviderFactory.cs
- ErrorWebPart.cs
- WebPartConnectionsCancelVerb.cs
- CodeAttributeDeclaration.cs
- ObjectListField.cs
- GenerateTemporaryTargetAssembly.cs
- ForeignConstraint.cs
- WebPartCloseVerb.cs
- InfoCardAsymmetricCrypto.cs
- CodeArrayIndexerExpression.cs
- AuthenticationManager.cs
- OracleDataAdapter.cs
- StylusPoint.cs
- ICspAsymmetricAlgorithm.cs
- _NTAuthentication.cs
- ConnectionPoint.cs
- BufferedStream.cs
- AuthenticationManager.cs
- PropertyGridEditorPart.cs
- MemoryResponseElement.cs
- IntPtr.cs
- AppLevelCompilationSectionCache.cs
- Literal.cs
- DistinctQueryOperator.cs
- ControlPaint.cs
- FixedSOMLineCollection.cs
- XmlCollation.cs
- FederatedMessageSecurityOverHttpElement.cs
- PagesSection.cs
- MetaForeignKeyColumn.cs
- EditCommandColumn.cs
- RetriableClipboard.cs
- Scene3D.cs
- OSFeature.cs
- PropertyFilterAttribute.cs
- SqlRetyper.cs
- ProxyDataContractResolver.cs
- DoubleIndependentAnimationStorage.cs
- TaiwanCalendar.cs
- DataGridViewColumnConverter.cs
- MembershipSection.cs
- MonthCalendar.cs
- PagerSettings.cs
- ProcessInfo.cs
- DataTableReaderListener.cs
- JournalEntry.cs
- CompilerResults.cs
- CompressionTracing.cs
- RelationshipEndCollection.cs
- SettingsPropertyIsReadOnlyException.cs
- ValidatingCollection.cs
- SemanticBasicElement.cs
- DataTable.cs
- AuthorizationPolicyTypeElementCollection.cs
- __Filters.cs
- DataGridViewControlCollection.cs
- WebScriptMetadataMessage.cs
- TextEditorSelection.cs
- RelationshipManager.cs
- CompiledAction.cs
- XXXOnTypeBuilderInstantiation.cs
- ConfigurationLockCollection.cs
- BasicHttpSecurity.cs
- BaseCollection.cs
- OneOf.cs
- FileDataSourceCache.cs
- InvalidateEvent.cs
- SerialStream.cs
- ThousandthOfEmRealPoints.cs
- LiteralControl.cs
- CharAnimationBase.cs
- EntityDescriptor.cs
- HtmlSelect.cs