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
- PerformanceCounter.cs
- Brush.cs
- RemotingServices.cs
- SmiConnection.cs
- HttpPostedFile.cs
- SQLBytes.cs
- base64Transforms.cs
- XmlSerializer.cs
- ErrorFormatterPage.cs
- TailPinnedEventArgs.cs
- PixelFormat.cs
- DragDrop.cs
- TextSelectionProcessor.cs
- PermissionRequestEvidence.cs
- handlecollector.cs
- RepeaterDesigner.cs
- InputQueueChannel.cs
- DataGridClipboardCellContent.cs
- GridViewRowEventArgs.cs
- DesignBindingPropertyDescriptor.cs
- BitStream.cs
- AbsoluteQuery.cs
- PageEventArgs.cs
- SpeechSynthesizer.cs
- InputMethodStateChangeEventArgs.cs
- PermissionListSet.cs
- InkPresenterAutomationPeer.cs
- MemoryPressure.cs
- EnumerableRowCollectionExtensions.cs
- DesignerCommandSet.cs
- CodeExpressionCollection.cs
- WebHttpDispatchOperationSelector.cs
- CompModSwitches.cs
- EditCommandColumn.cs
- MethodImplAttribute.cs
- SchemaLookupTable.cs
- BooleanKeyFrameCollection.cs
- SqlServices.cs
- AutomationPatternInfo.cs
- TimeZoneNotFoundException.cs
- Viewport2DVisual3D.cs
- DefaultParameterValueAttribute.cs
- SystemWebExtensionsSectionGroup.cs
- DoubleAnimationUsingPath.cs
- BinarySerializer.cs
- UnsafeNetInfoNativeMethods.cs
- RefreshEventArgs.cs
- CompositeActivityValidator.cs
- BitStream.cs
- InitialServerConnectionReader.cs
- SafeRightsManagementQueryHandle.cs
- DatatypeImplementation.cs
- FormViewPagerRow.cs
- ConfigXmlAttribute.cs
- HtmlElementEventArgs.cs
- EventDescriptor.cs
- PeerDuplexChannelListener.cs
- SystemWebSectionGroup.cs
- DateTime.cs
- DataGridViewMethods.cs
- UnsafeNativeMethods.cs
- MsmqHostedTransportConfiguration.cs
- SqlDataSource.cs
- AsyncResult.cs
- TemplateParser.cs
- BitmapFrame.cs
- ReachPageContentCollectionSerializer.cs
- EmptyWorkItem.cs
- TypeUnloadedException.cs
- RepeaterCommandEventArgs.cs
- Decoder.cs
- WebEventTraceProvider.cs
- ConditionalAttribute.cs
- PlatformCulture.cs
- ViewKeyConstraint.cs
- SessionEndingCancelEventArgs.cs
- WindowsListViewGroupSubsetLink.cs
- WebEventCodes.cs
- TagMapCollection.cs
- LongPath.cs
- MemberBinding.cs
- Scripts.cs
- MatrixTransform3D.cs
- hwndwrapper.cs
- HtmlGenericControl.cs
- ZoneButton.cs
- TextServicesLoader.cs
- EpmSourceTree.cs
- DataGridViewComboBoxCell.cs
- CompilationSection.cs
- httpapplicationstate.cs
- MachineKeyConverter.cs
- ValidateNames.cs
- oledbmetadatacollectionnames.cs
- MessageFilterException.cs
- CharEnumerator.cs
- ReachPageContentCollectionSerializer.cs
- WindowProviderWrapper.cs
- XamlBrushSerializer.cs
- PointConverter.cs