Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / CompilerTypeWithParams.cs / 1305376 / 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. */ 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); } } } // 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
- OuterGlowBitmapEffect.cs
- HttpClientChannel.cs
- DbConnectionClosed.cs
- WebPartManager.cs
- ConnectionPoint.cs
- ASCIIEncoding.cs
- ConnectionsZone.cs
- ToolStripPanelSelectionGlyph.cs
- XmlHelper.cs
- MembershipUser.cs
- MethodCallExpression.cs
- ProtectedConfigurationSection.cs
- ObfuscationAttribute.cs
- SafeViewOfFileHandle.cs
- BoundingRectTracker.cs
- SystemPens.cs
- DrawToolTipEventArgs.cs
- TreeBuilderXamlTranslator.cs
- FormsAuthenticationConfiguration.cs
- ContentElement.cs
- CheckBoxBaseAdapter.cs
- SByte.cs
- ConfigurationFileMap.cs
- OrCondition.cs
- Visual3DCollection.cs
- CodeDirectoryCompiler.cs
- XmlNamespaceDeclarationsAttribute.cs
- OLEDB_Util.cs
- XmlSchemaProviderAttribute.cs
- FontNameEditor.cs
- Label.cs
- TraceRecord.cs
- _ListenerRequestStream.cs
- Transform3DGroup.cs
- PointCollectionConverter.cs
- HwndSourceKeyboardInputSite.cs
- ServiceModelConfigurationSection.cs
- ObjectQueryExecutionPlan.cs
- JournalEntryListConverter.cs
- DataGridCell.cs
- NativeActivityContext.cs
- CreateUserWizard.cs
- unitconverter.cs
- SharedStatics.cs
- AppDomainUnloadedException.cs
- GuidelineCollection.cs
- Rotation3D.cs
- ZipFileInfoCollection.cs
- XmlSerializer.cs
- CheckPair.cs
- PersianCalendar.cs
- BaseAddressElementCollection.cs
- SettingsProviderCollection.cs
- SqlProfileProvider.cs
- IPGlobalProperties.cs
- BuildProvidersCompiler.cs
- unsafeIndexingFilterStream.cs
- ProtocolsConfiguration.cs
- HTMLTextWriter.cs
- SurrogateSelector.cs
- UInt16Storage.cs
- StandardTransformFactory.cs
- XmlSchemaChoice.cs
- XslTransform.cs
- FormViewInsertedEventArgs.cs
- LocalIdKeyIdentifierClause.cs
- DataRowComparer.cs
- MsmqIntegrationValidationBehavior.cs
- TextLineResult.cs
- MimeMapping.cs
- BindStream.cs
- ButtonFieldBase.cs
- HMACSHA1.cs
- AttachedPropertiesService.cs
- BinaryConverter.cs
- XsltInput.cs
- XmlSchemaSimpleContentRestriction.cs
- WebBrowserEvent.cs
- EngineSite.cs
- DataGridColumnHeader.cs
- EntityKey.cs
- UpdateException.cs
- TabletDeviceInfo.cs
- UnmanagedBitmapWrapper.cs
- ResourceManager.cs
- XmlSchemaAnyAttribute.cs
- IPHostEntry.cs
- AgileSafeNativeMemoryHandle.cs
- CategoryAttribute.cs
- AsyncOperationLifetimeManager.cs
- ScrollPattern.cs
- NotifyParentPropertyAttribute.cs
- PublisherIdentityPermission.cs
- HtmlInputCheckBox.cs
- SqlBuilder.cs
- DataFormat.cs
- KnownIds.cs
- ContentDisposition.cs
- OrderedDictionary.cs
- HttpListenerResponse.cs