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
- ImageSource.cs
- StateBag.cs
- SamlAuthorityBinding.cs
- PlanCompiler.cs
- SectionRecord.cs
- Window.cs
- SessionStateUtil.cs
- BinaryFormatterSinks.cs
- RelatedEnd.cs
- basecomparevalidator.cs
- Reference.cs
- TextFormatterHost.cs
- SystemIcmpV4Statistics.cs
- UpdatePanelTrigger.cs
- MultipartContentParser.cs
- ModuleBuilder.cs
- HtmlControl.cs
- MeasurementDCInfo.cs
- UTF32Encoding.cs
- SystemDropShadowChrome.cs
- RequestCacheEntry.cs
- LocatorGroup.cs
- FreezableCollection.cs
- TaskHelper.cs
- LayoutTable.cs
- EnumBuilder.cs
- CustomSignedXml.cs
- ToolStripDropDown.cs
- EmbeddedObject.cs
- Win32SafeHandles.cs
- ListViewUpdatedEventArgs.cs
- X509Utils.cs
- TcpProcessProtocolHandler.cs
- StaticExtensionConverter.cs
- StatusBar.cs
- KeyPressEvent.cs
- XmlNamespaceManager.cs
- CodeTypeReference.cs
- SequenceFullException.cs
- SQLMoney.cs
- UserNamePasswordValidationMode.cs
- PrintingPermission.cs
- ToolBarButton.cs
- TextSelectionProcessor.cs
- ClientBuildManagerCallback.cs
- CheckBoxBaseAdapter.cs
- WindowsTreeView.cs
- HostProtectionPermission.cs
- XmlNavigatorFilter.cs
- IncomingWebRequestContext.cs
- ContextStack.cs
- StyleBamlTreeBuilder.cs
- XpsFilter.cs
- StorageBasedPackageProperties.cs
- TransformPatternIdentifiers.cs
- SoapAttributes.cs
- altserialization.cs
- Quaternion.cs
- SqlConnectionStringBuilder.cs
- ChildTable.cs
- WindowAutomationPeer.cs
- ListViewGroupConverter.cs
- WindowsAuthenticationEventArgs.cs
- JsonByteArrayDataContract.cs
- SerializerDescriptor.cs
- CustomGrammar.cs
- SimpleType.cs
- IPipelineRuntime.cs
- ColumnClickEvent.cs
- DataTrigger.cs
- DataGridCaption.cs
- WindowsRebar.cs
- ObjectRef.cs
- OutKeywords.cs
- AnimationLayer.cs
- SamlAttribute.cs
- GenericTypeParameterBuilder.cs
- SynchronizedInputProviderWrapper.cs
- Rect3D.cs
- FileSecurity.cs
- Attributes.cs
- UnsafeNativeMethods.cs
- CodeTypeReferenceExpression.cs
- XDeferredAxisSource.cs
- Rect.cs
- DispatcherHookEventArgs.cs
- StorageAssociationTypeMapping.cs
- __Filters.cs
- PopOutPanel.cs
- MetabaseServerConfig.cs
- ConvertTextFrag.cs
- HtmlString.cs
- HtmlLink.cs
- Effect.cs
- DataTableExtensions.cs
- DataGridViewCellParsingEventArgs.cs
- AuthorizationRuleCollection.cs
- FunctionNode.cs
- PrimitiveSchema.cs
- StructuredCompositeActivityDesigner.cs