Code:
/ DotNET / DotNET / 8.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
- MemberCollection.cs
- RIPEMD160Managed.cs
- XmlSchemaComplexContentRestriction.cs
- ObjectStateEntryDbDataRecord.cs
- StringConverter.cs
- PointAnimationBase.cs
- Composition.cs
- SpotLight.cs
- PageSetupDialog.cs
- HandlerWithFactory.cs
- Options.cs
- processwaithandle.cs
- InputQueueChannel.cs
- IdnMapping.cs
- DependencyPropertyKind.cs
- BitmapEffectInput.cs
- InternalConfirm.cs
- EventPropertyMap.cs
- DataServiceRequest.cs
- FilterableAttribute.cs
- AttachedPropertyBrowsableAttribute.cs
- AutomationPropertyInfo.cs
- SqlGatherProducedAliases.cs
- CodeSnippetExpression.cs
- SQLResource.cs
- ReferenceEqualityComparer.cs
- ToolStripContextMenu.cs
- XmlName.cs
- WsatServiceAddress.cs
- BatchStream.cs
- StreamHelper.cs
- FrameworkPropertyMetadata.cs
- COM2PictureConverter.cs
- Paragraph.cs
- SchemaObjectWriter.cs
- CheckBox.cs
- PageBuildProvider.cs
- GuidelineCollection.cs
- DeadCharTextComposition.cs
- TcpActivation.cs
- Enum.cs
- StylusEventArgs.cs
- EventToken.cs
- FormsIdentity.cs
- OleDbErrorCollection.cs
- RbTree.cs
- DataListItemEventArgs.cs
- WebResourceUtil.cs
- Lookup.cs
- ProcessHostFactoryHelper.cs
- SynchronizationContext.cs
- ToolStripPanelSelectionBehavior.cs
- TraceListener.cs
- VariableDesigner.xaml.cs
- NumericExpr.cs
- SortAction.cs
- ViewSimplifier.cs
- TextParagraphCache.cs
- ArrayHelper.cs
- OrthographicCamera.cs
- AutoGeneratedField.cs
- EdgeProfileValidation.cs
- NameTable.cs
- TextProperties.cs
- SpellerError.cs
- SpecularMaterial.cs
- DataControlFieldsEditor.cs
- CqlParser.cs
- DataGridItemCollection.cs
- Attachment.cs
- WorkflowInstanceExtensionProvider.cs
- GZipStream.cs
- ReadOnlyDataSource.cs
- StringFunctions.cs
- IConvertible.cs
- TemplatePropertyEntry.cs
- ListArgumentProvider.cs
- DelayedRegex.cs
- StringInfo.cs
- StorageMappingItemCollection.cs
- GlyphingCache.cs
- TypefaceCollection.cs
- ComponentDispatcherThread.cs
- PasswordBoxAutomationPeer.cs
- RuntimeWrappedException.cs
- OutputCacheProfileCollection.cs
- ToolStripContentPanel.cs
- OdbcConnectionStringbuilder.cs
- Tokenizer.cs
- ProfileManager.cs
- DefaultParameterValueAttribute.cs
- CallContext.cs
- AutomationAttributeInfo.cs
- XmlSchemaComplexContentExtension.cs
- DateTimeValueSerializerContext.cs
- ImportFileRequest.cs
- FacetEnabledSchemaElement.cs
- AlphaSortedEnumConverter.cs
- PrintingPermission.cs
- PartialList.cs