Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Compilation / CompilerTypeWithParams.cs / 2 / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataBindingCollectionConverter.cs
- SingleAnimationUsingKeyFrames.cs
- IteratorFilter.cs
- SendSecurityHeaderElementContainer.cs
- WebPartConnectionCollection.cs
- CompressionTracing.cs
- Button.cs
- WebPartConnectionCollection.cs
- ConstructorArgumentAttribute.cs
- shaperfactoryquerycachekey.cs
- CollectionViewSource.cs
- SystemIPGlobalStatistics.cs
- Rule.cs
- XmlAnyElementAttribute.cs
- HttpSocketManager.cs
- ProxyFragment.cs
- HtmlTableCellCollection.cs
- RelationshipType.cs
- CodeMemberEvent.cs
- ProtocolsSection.cs
- SvcFileManager.cs
- PathFigureCollection.cs
- WsiProfilesElementCollection.cs
- Property.cs
- CompressedStack.cs
- ForwardPositionQuery.cs
- ContainerVisual.cs
- PackWebRequest.cs
- columnmapfactory.cs
- SafeNativeMethods.cs
- MissingMemberException.cs
- SqlWebEventProvider.cs
- CheckPair.cs
- ValidatorCollection.cs
- XPathParser.cs
- HttpClientCertificate.cs
- ReachVisualSerializerAsync.cs
- BamlRecordWriter.cs
- MinMaxParagraphWidth.cs
- ReadOnlyCollectionBase.cs
- Solver.cs
- InheritanceUI.cs
- DbConnectionPoolGroup.cs
- ExpressionEditor.cs
- SchemeSettingElement.cs
- ToolStripDropDownItem.cs
- SafeThreadHandle.cs
- XmlTextWriter.cs
- ReverseQueryOperator.cs
- FontStretches.cs
- EntityDataSourceSelectingEventArgs.cs
- GenericWebPart.cs
- AdPostCacheSubstitution.cs
- FixedDocumentSequencePaginator.cs
- IssuanceLicense.cs
- EntityCommandCompilationException.cs
- embossbitmapeffect.cs
- DataServiceBehavior.cs
- sqlstateclientmanager.cs
- WindowHideOrCloseTracker.cs
- OracleParameter.cs
- XamlNamespaceHelper.cs
- EditableLabelControl.cs
- ApplicationSecurityManager.cs
- CodeTypeConstructor.cs
- WindowsStartMenu.cs
- TypeLoadException.cs
- XmlQueryStaticData.cs
- DataGridViewCellConverter.cs
- WebFaultClientMessageInspector.cs
- ReferenceConverter.cs
- CompositeCollection.cs
- DesignerTransaction.cs
- StateDesigner.Layouts.cs
- BamlResourceContent.cs
- RSAOAEPKeyExchangeDeformatter.cs
- infer.cs
- TemplateParser.cs
- ResolveCriteria.cs
- DataGridBoolColumn.cs
- ToggleButton.cs
- ToolStripArrowRenderEventArgs.cs
- SmiConnection.cs
- ContentElement.cs
- XPathMessageFilter.cs
- RtfToXamlReader.cs
- ButtonPopupAdapter.cs
- DtdParser.cs
- DbDataRecord.cs
- RelationshipEnd.cs
- StorageFunctionMapping.cs
- StringFreezingAttribute.cs
- wmiprovider.cs
- LayoutTableCell.cs
- UInt32Converter.cs
- DesignerActionUIStateChangeEventArgs.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- HwndProxyElementProvider.cs
- Shared.cs
- GifBitmapDecoder.cs