Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / AspNet / EntityModelBuildProvider.cs / 1305376 / 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; } /// /// /// /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] public override void GenerateCode(AssemblyBuilder assemblyBuilder) { // look at the assembly builder to see which language we should use in the App_Code directory EntityCodeGenerator generator = null; if (assemblyBuilder.CodeDomProvider.FileExtension.ToLowerInvariant() == "cs") { generator = new EntityCodeGenerator(LanguageOption.GenerateCSharpCode); } else { generator = new EntityCodeGenerator(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; } /// /// /// /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] public override void GenerateCode(AssemblyBuilder assemblyBuilder) { // look at the assembly builder to see which language we should use in the App_Code directory EntityCodeGenerator generator = null; if (assemblyBuilder.CodeDomProvider.FileExtension.ToLowerInvariant() == "cs") { generator = new EntityCodeGenerator(LanguageOption.GenerateCSharpCode); } else { generator = new EntityCodeGenerator(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
- DiffuseMaterial.cs
- DeviceContext2.cs
- TreeViewItemAutomationPeer.cs
- Point3DCollection.cs
- RepeaterItem.cs
- DragEvent.cs
- WithParamAction.cs
- AuthenticationException.cs
- SqlInfoMessageEvent.cs
- ClientFormsAuthenticationMembershipProvider.cs
- TextRunCacheImp.cs
- TreeNodeEventArgs.cs
- XPathAxisIterator.cs
- ThumbButtonInfoCollection.cs
- BindingExpressionBase.cs
- DecimalAnimation.cs
- ParameterBuilder.cs
- NonClientArea.cs
- HtmlForm.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ToolStripSeparatorRenderEventArgs.cs
- CodeTypeParameterCollection.cs
- TextRangeAdaptor.cs
- DelegatingTypeDescriptionProvider.cs
- activationcontext.cs
- SecurityPolicySection.cs
- ChildTable.cs
- DateTimeConverter2.cs
- NotifyIcon.cs
- BinaryMethodMessage.cs
- ArgumentValidation.cs
- SignedXmlDebugLog.cs
- EdmScalarPropertyAttribute.cs
- TimeSpan.cs
- InvalidCommandTreeException.cs
- IgnoreSectionHandler.cs
- PackageFilter.cs
- TableHeaderCell.cs
- ProxyWebPart.cs
- cookie.cs
- DrawListViewItemEventArgs.cs
- DesignColumn.cs
- PeerService.cs
- ConstNode.cs
- ZoneLinkButton.cs
- TextEditorDragDrop.cs
- DataGridViewLinkCell.cs
- CodeGotoStatement.cs
- XmlNodeChangedEventManager.cs
- DataControlFieldTypeEditor.cs
- ShapeTypeface.cs
- SecUtil.cs
- StylusPointPropertyId.cs
- WebPartExportVerb.cs
- Merger.cs
- ServiceHttpHandlerFactory.cs
- FloaterBaseParaClient.cs
- Annotation.cs
- XamlDesignerSerializationManager.cs
- IncrementalReadDecoders.cs
- TextServicesCompartment.cs
- TdsParameterSetter.cs
- ControlBuilder.cs
- Int32Converter.cs
- DictionarySurrogate.cs
- SiteMapNodeCollection.cs
- QueryContinueDragEventArgs.cs
- PartialCachingAttribute.cs
- BinaryObjectWriter.cs
- DBDataPermission.cs
- PriorityQueue.cs
- XmlSchemaImport.cs
- NavigationProperty.cs
- DetailsViewUpdateEventArgs.cs
- ParseChildrenAsPropertiesAttribute.cs
- RawMouseInputReport.cs
- MulticastNotSupportedException.cs
- RegularExpressionValidator.cs
- RecommendedAsConfigurableAttribute.cs
- ChildrenQuery.cs
- ListViewItem.cs
- StatusStrip.cs
- AdRotator.cs
- GridViewColumnHeader.cs
- BitArray.cs
- SerializableAttribute.cs
- TableItemProviderWrapper.cs
- ActionNotSupportedException.cs
- MobileListItem.cs
- NominalTypeEliminator.cs
- GlyphRunDrawing.cs
- DataGridViewCellCancelEventArgs.cs
- ToolStripGrip.cs
- SimpleMailWebEventProvider.cs
- HyperLinkColumn.cs
- CurrentChangedEventManager.cs
- _CacheStreams.cs
- EncoderBestFitFallback.cs
- RepeatBehaviorConverter.cs
- GroupStyle.cs