Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / AspNet / EntityModelBuildProvider.cs / 2 / EntityModelBuildProvider.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.CodeDom; using System.CodeDom.Compiler; using System.Globalization; using System.IO; using System.Web; using System.Web.Hosting; using System.Web.Compilation; using System.Xml; using System.Data.Entity.Design; 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 EntityModelBuildProvider : System.Web.Compilation.BuildProvider { ////// Default constructor /// public EntityModelBuildProvider() { } ////// We want ASP .NET to always reset the app domain when we have to rebuild /// /// ///public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } /// /// /// /// public override void GenerateCode(AssemblyBuilder assemblyBuilder) { // look at the assembly builder to see which language we should use in the App_Code directory EntityClassGenerator generator = null; if (assemblyBuilder.CodeDomProvider.FileExtension.ToLowerInvariant() == "cs") { generator = new EntityClassGenerator(LanguageOption.GenerateCSharpCode); } else { generator = new EntityClassGenerator(LanguageOption.GenerateVBCode); } // generate the code for our CSDL file IListerrors = null; using (XmlReader input = XmlReader.Create(VirtualPathProvider.OpenFile(base.VirtualPath))) { using (StringWriter output = new StringWriter(CultureInfo.InvariantCulture)) { // Read from input and generate into output, put errors in a class member errors = generator.GenerateCode(input, output); if (errors.Count == 0) { output.Flush(); assemblyBuilder.AddCodeCompileUnit(this, new CodeSnippetCompileUnit(output.ToString())); } } } // if there are errors, package this data into XmlExceptions and throw this // if we are in VS, the ASP .NET stack will place this information in the error pane // if we are in the ASP .NET runtime, it will use this information to build the error page if (errors != null && errors.Count > 0) { XmlException inner = null; XmlException outer = null; foreach (EdmSchemaError error in errors) { outer = new XmlException(error.Message, inner, error.Line, error.Column); inner = outer; } throw outer; } BuildProviderUtils.AddArtifactReference(assemblyBuilder, this, base.VirtualPath); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.CodeDom; using System.CodeDom.Compiler; using System.Globalization; using System.IO; using System.Web; using System.Web.Hosting; using System.Web.Compilation; using System.Xml; using System.Data.Entity.Design; 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 EntityModelBuildProvider : System.Web.Compilation.BuildProvider { ////// Default constructor /// public EntityModelBuildProvider() { } ////// We want ASP .NET to always reset the app domain when we have to rebuild /// /// ///public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } /// /// /// /// public override void GenerateCode(AssemblyBuilder assemblyBuilder) { // look at the assembly builder to see which language we should use in the App_Code directory EntityClassGenerator generator = null; if (assemblyBuilder.CodeDomProvider.FileExtension.ToLowerInvariant() == "cs") { generator = new EntityClassGenerator(LanguageOption.GenerateCSharpCode); } else { generator = new EntityClassGenerator(LanguageOption.GenerateVBCode); } // generate the code for our CSDL file IListerrors = null; using (XmlReader input = XmlReader.Create(VirtualPathProvider.OpenFile(base.VirtualPath))) { using (StringWriter output = new StringWriter(CultureInfo.InvariantCulture)) { // Read from input and generate into output, put errors in a class member errors = generator.GenerateCode(input, output); if (errors.Count == 0) { output.Flush(); assemblyBuilder.AddCodeCompileUnit(this, new CodeSnippetCompileUnit(output.ToString())); } } } // if there are errors, package this data into XmlExceptions and throw this // if we are in VS, the ASP .NET stack will place this information in the error pane // if we are in the ASP .NET runtime, it will use this information to build the error page if (errors != null && errors.Count > 0) { XmlException inner = null; XmlException outer = null; foreach (EdmSchemaError error in errors) { outer = new XmlException(error.Message, inner, error.Line, error.Column); inner = outer; } throw outer; } BuildProviderUtils.AddArtifactReference(assemblyBuilder, this, base.VirtualPath); } } } // 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
- X509CertificateClaimSet.cs
- HelpEvent.cs
- DataRowChangeEvent.cs
- SecurityPolicySection.cs
- ResourceExpressionBuilder.cs
- UmAlQuraCalendar.cs
- Parameter.cs
- FactoryId.cs
- Span.cs
- Axis.cs
- ServicesUtilities.cs
- OleDbConnection.cs
- GeneralTransform3DGroup.cs
- QueryCursorEventArgs.cs
- MouseDevice.cs
- PointHitTestResult.cs
- XmlStreamStore.cs
- GridViewColumnHeaderAutomationPeer.cs
- Debug.cs
- DbException.cs
- SqlUDTStorage.cs
- WpfPayload.cs
- MissingManifestResourceException.cs
- MulticastNotSupportedException.cs
- ColorAnimation.cs
- ActivationWorker.cs
- NumberFormatter.cs
- RelatedImageListAttribute.cs
- FormViewUpdateEventArgs.cs
- XmlQualifiedName.cs
- ConnectorDragDropGlyph.cs
- SafeNativeMethodsCLR.cs
- XPathNodeList.cs
- DCSafeHandle.cs
- DATA_BLOB.cs
- StatusBarAutomationPeer.cs
- BitmapCache.cs
- Italic.cs
- QueryOutputWriter.cs
- DocumentPageView.cs
- JoinElimination.cs
- SecurityRuntime.cs
- AdRotator.cs
- Rotation3DAnimation.cs
- SByte.cs
- FirewallWrapper.cs
- BaseCodeDomTreeGenerator.cs
- HtmlControl.cs
- WindowInteropHelper.cs
- SqlConnection.cs
- WindowsUpDown.cs
- GatewayDefinition.cs
- ModifiableIteratorCollection.cs
- EntityViewContainer.cs
- SystemSounds.cs
- ProtocolException.cs
- HttpProcessUtility.cs
- DictionaryKeyPropertyAttribute.cs
- ApplicationTrust.cs
- MissingMemberException.cs
- GetReadStreamResult.cs
- StylusDevice.cs
- DataStorage.cs
- BuildProviderAppliesToAttribute.cs
- DataSysAttribute.cs
- ObjectManager.cs
- Rotation3DAnimationUsingKeyFrames.cs
- SqlDeflator.cs
- PersonalizationAdministration.cs
- MobileListItemCollection.cs
- XpsFilter.cs
- MimePart.cs
- Int32.cs
- HtmlInputFile.cs
- ClientTargetCollection.cs
- DependencyObject.cs
- DataSourceView.cs
- AddInDeploymentState.cs
- ParagraphResult.cs
- TemplatedWizardStep.cs
- SelectionWordBreaker.cs
- ListViewInsertedEventArgs.cs
- BigInt.cs
- WindowsEditBox.cs
- XPathSelfQuery.cs
- QuaternionIndependentAnimationStorage.cs
- WorkflowStateRollbackService.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ValidatingReaderNodeData.cs
- XAMLParseException.cs
- Int32CollectionConverter.cs
- GlyphInfoList.cs
- WindowsFormsSectionHandler.cs
- DrawingAttributeSerializer.cs
- DefaultExpressionVisitor.cs
- XmlSerializer.cs
- ZipIOExtraFieldZip64Element.cs
- Control.cs
- FontFamilyConverter.cs
- JsonGlobals.cs