Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Compilation / CompilerTypeWithParams.cs / 1 / CompilerTypeWithParams.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.Security.Permissions; using System.IO; using System.Collections; using System.Globalization; using System.CodeDom; using System.CodeDom.Compiler; using System.Web.Hosting; using System.Web.Util; using System.Web.UI; using System.Web.Configuration; /* * This class describes a CodeDom compiler, along with the parameters that it uses. * The reason we need this class is that if two files both use the same language, * but ask for different command line options (e.g. debug vs retail), we will not * be able to compile them together. So effectively, we need to treat them as * different languages. */ [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class CompilerType { private Type _codeDomProviderType; public Type CodeDomProviderType { get { return _codeDomProviderType; } } private CompilerParameters _compilParams; public CompilerParameters CompilerParameters { get { return _compilParams; } } internal CompilerType(Type codeDomProviderType, CompilerParameters compilParams) { Debug.Assert(codeDomProviderType != null); _codeDomProviderType = codeDomProviderType; if (compilParams == null) _compilParams = new CompilerParameters(); else _compilParams = compilParams; } internal CompilerType Clone() { // Clone the CompilerParameters to make sure the original is untouched return new CompilerType(_codeDomProviderType, CloneCompilerParameters()); } private CompilerParameters CloneCompilerParameters() { CompilerParameters copy = new CompilerParameters(); copy.IncludeDebugInformation = _compilParams.IncludeDebugInformation; copy.TreatWarningsAsErrors = _compilParams.TreatWarningsAsErrors; copy.WarningLevel = _compilParams.WarningLevel; copy.CompilerOptions = _compilParams.CompilerOptions; return copy; } public override int GetHashCode() { return _codeDomProviderType.GetHashCode(); } public override bool Equals(Object o) { CompilerType other = o as CompilerType; if (o == null) return false; return _codeDomProviderType == other._codeDomProviderType && _compilParams.WarningLevel == other._compilParams.WarningLevel && _compilParams.IncludeDebugInformation == other._compilParams.IncludeDebugInformation && _compilParams.CompilerOptions == other._compilParams.CompilerOptions; } internal AssemblyBuilder CreateAssemblyBuilder(CompilationSection compConfig, ICollection referencedAssemblies) { return CreateAssemblyBuilder(compConfig, referencedAssemblies, null /*generatedFilesDir*/, null /*outputAssemblyName*/); } internal AssemblyBuilder CreateAssemblyBuilder(CompilationSection compConfig, ICollection referencedAssemblies, string generatedFilesDir, string outputAssemblyName) { // Create a special AssemblyBuilder when we're only supposed to generate // source files but not compile them (for ClientBuildManager.GetCodeDirectoryInformation) if (generatedFilesDir != null) { return new CbmCodeGeneratorBuildProviderHost(compConfig, referencedAssemblies, this, generatedFilesDir, outputAssemblyName); } return new AssemblyBuilder(compConfig, referencedAssemblies, this, outputAssemblyName); } private static CompilerType GetDefaultCompilerTypeWithParams( CompilationSection compConfig, VirtualPath configPath) { // By default, use C# when no provider is asking for a specific language return CompilationUtil.GetCSharpCompilerInfo(compConfig, configPath); } internal static AssemblyBuilder GetDefaultAssemblyBuilder(CompilationSection compConfig, ICollection referencedAssemblies, VirtualPath configPath, string outputAssemblyName) { return GetDefaultAssemblyBuilder(compConfig, referencedAssemblies, configPath, null /*generatedFilesDir*/, outputAssemblyName); } internal static AssemblyBuilder GetDefaultAssemblyBuilder(CompilationSection compConfig, ICollection referencedAssemblies, VirtualPath configPath, string generatedFilesDir, string outputAssemblyName) { CompilerType ctwp = GetDefaultCompilerTypeWithParams(compConfig, configPath); return ctwp.CreateAssemblyBuilder(compConfig, referencedAssemblies, generatedFilesDir, outputAssemblyName); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- COM2Enum.cs
- WorkflowView.cs
- Deserializer.cs
- SqlRowUpdatingEvent.cs
- StringSorter.cs
- MustUnderstandBehavior.cs
- ConnectionManager.cs
- SqlProcedureAttribute.cs
- SapiRecoContext.cs
- SiteMapNode.cs
- localization.cs
- CopyOnWriteList.cs
- FixedSOMPage.cs
- CommentEmitter.cs
- ToolStripTextBox.cs
- EntityCollectionChangedParams.cs
- CatalogPartCollection.cs
- Transform3D.cs
- AttributeAction.cs
- BitmapEditor.cs
- ArrayItemValue.cs
- DataTableNameHandler.cs
- UdpSocket.cs
- ViewValidator.cs
- HttpFileCollection.cs
- ToolboxItemSnapLineBehavior.cs
- PrivateFontCollection.cs
- PenThreadWorker.cs
- DocumentsTrace.cs
- OletxEnlistment.cs
- ComponentDispatcher.cs
- MenuBindingsEditorForm.cs
- CodeArrayCreateExpression.cs
- XPathNavigator.cs
- PopupRoot.cs
- Latin1Encoding.cs
- CacheChildrenQuery.cs
- IDispatchConstantAttribute.cs
- SafeEventHandle.cs
- PathData.cs
- InstanceValue.cs
- PagesChangedEventArgs.cs
- AgileSafeNativeMemoryHandle.cs
- FolderBrowserDialog.cs
- UIElementParaClient.cs
- PropertyReferenceSerializer.cs
- HttpApplication.cs
- PngBitmapDecoder.cs
- KnownBoxes.cs
- ClientSettingsStore.cs
- DelegatingConfigHost.cs
- ModelItemKeyValuePair.cs
- BindUriHelper.cs
- TextTreeFixupNode.cs
- ComplexBindingPropertiesAttribute.cs
- EmitterCache.cs
- RegularExpressionValidator.cs
- Span.cs
- DataGridViewLinkColumn.cs
- ProfileGroupSettingsCollection.cs
- HtmlAnchor.cs
- MemberCollection.cs
- HttpHandler.cs
- BoolLiteral.cs
- UInt32.cs
- HashRepartitionStream.cs
- XmlAttribute.cs
- WorkflowPersistenceService.cs
- SslStream.cs
- HyperlinkAutomationPeer.cs
- WebPartDisplayModeCancelEventArgs.cs
- SmtpReplyReader.cs
- WizardStepBase.cs
- SqlCrossApplyToCrossJoin.cs
- documentsequencetextview.cs
- SignalGate.cs
- UniqueEventHelper.cs
- LifetimeServices.cs
- SimpleApplicationHost.cs
- InlinedLocationReference.cs
- QueryOperationResponseOfT.cs
- DiscoveryInnerClientManaged11.cs
- RootNamespaceAttribute.cs
- MSG.cs
- HttpHeaderCollection.cs
- StatusBarPanel.cs
- NonParentingControl.cs
- ReverseQueryOperator.cs
- DataGridRowEventArgs.cs
- Int64KeyFrameCollection.cs
- Setter.cs
- _RequestCacheProtocol.cs
- ClientUtils.cs
- ExtensibleClassFactory.cs
- ImageKeyConverter.cs
- TransformerTypeCollection.cs
- IApplicationTrustManager.cs
- TraceRecord.cs
- SafeLocalMemHandle.cs
- LogExtent.cs