Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / AspNet / EntityModelBuildProvider.cs / 1 / 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
- XmlFormatExtensionPointAttribute.cs
- IxmlLineInfo.cs
- InvokePattern.cs
- _ScatterGatherBuffers.cs
- XmlSchemaGroup.cs
- CommandLibraryHelper.cs
- EditorZoneBase.cs
- ZipIOLocalFileDataDescriptor.cs
- ValidatingPropertiesEventArgs.cs
- KerberosTicketHashIdentifierClause.cs
- BmpBitmapEncoder.cs
- ServiceMemoryGates.cs
- ClientSession.cs
- DataGridViewTextBoxCell.cs
- AssemblyCollection.cs
- LightweightEntityWrapper.cs
- FirstMatchCodeGroup.cs
- UrlAuthFailedErrorFormatter.cs
- XPathAncestorQuery.cs
- RepeaterItemCollection.cs
- FileNotFoundException.cs
- AssertSection.cs
- WebReferencesBuildProvider.cs
- XmlText.cs
- SparseMemoryStream.cs
- MachineSettingsSection.cs
- DesignerAttribute.cs
- UnmanagedMemoryStreamWrapper.cs
- WinFormsUtils.cs
- TagNameToTypeMapper.cs
- ByteStreamMessageUtility.cs
- UserControlBuildProvider.cs
- DbConnectionPool.cs
- PropertyDescriptorGridEntry.cs
- TypeInitializationException.cs
- ToolStripTextBox.cs
- DataContractSerializerMessageContractImporter.cs
- XmlSchemaChoice.cs
- WmlTextBoxAdapter.cs
- InputScopeAttribute.cs
- MissingManifestResourceException.cs
- DSACryptoServiceProvider.cs
- Visual3DCollection.cs
- IndexingContentUnit.cs
- RuntimeComponentFilter.cs
- ContentFileHelper.cs
- SplineKeyFrames.cs
- WrappedIUnknown.cs
- BCryptNative.cs
- CommonObjectSecurity.cs
- DetailsViewCommandEventArgs.cs
- LinkClickEvent.cs
- COM2FontConverter.cs
- LinkClickEvent.cs
- ExpandSegment.cs
- DBSqlParserColumn.cs
- HttpProtocolImporter.cs
- CustomError.cs
- SmiRecordBuffer.cs
- Simplifier.cs
- CultureSpecificCharacterBufferRange.cs
- Color.cs
- System.Data_BID.cs
- XmlExpressionDumper.cs
- DnsPermission.cs
- TrackingParticipant.cs
- SqlConnectionFactory.cs
- PerformanceCounterManager.cs
- MouseCaptureWithinProperty.cs
- XmlUTF8TextWriter.cs
- ConnectionStringSettings.cs
- DoubleLinkListEnumerator.cs
- CardSpaceException.cs
- LambdaCompiler.Logical.cs
- BridgeDataRecord.cs
- DropSource.cs
- InProcStateClientManager.cs
- IconConverter.cs
- documentsequencetextpointer.cs
- BaseTemplateParser.cs
- DefinitionBase.cs
- RemoteWebConfigurationHostStream.cs
- dbdatarecord.cs
- RadioButton.cs
- DataGridBoolColumn.cs
- DesignerActionMethodItem.cs
- Cursor.cs
- WindowsGraphics.cs
- DbConnectionPoolCounters.cs
- DesignerWidgets.cs
- BuildResult.cs
- NamedPermissionSet.cs
- NamedObject.cs
- LateBoundBitmapDecoder.cs
- Resources.Designer.cs
- AutoGeneratedFieldProperties.cs
- HitTestParameters3D.cs
- SqlInternalConnection.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- WindowsToolbarAsMenu.cs