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
- DataContext.cs
- AuthenticateEventArgs.cs
- XmlSerializationReader.cs
- MailHeaderInfo.cs
- SessionStateContainer.cs
- TerminatorSinks.cs
- PrinterUnitConvert.cs
- ControlTemplate.cs
- PageAsyncTaskManager.cs
- TemplateBindingExtension.cs
- DefaultPropertyAttribute.cs
- CodeChecksumPragma.cs
- _ListenerRequestStream.cs
- WithStatement.cs
- PeerToPeerException.cs
- DragEvent.cs
- SoapExtensionReflector.cs
- DataGridLinkButton.cs
- UntrustedRecipientException.cs
- PropertyChangingEventArgs.cs
- CodeGroup.cs
- SoapIncludeAttribute.cs
- HtmlElementCollection.cs
- WebPartConnectionsEventArgs.cs
- XmlSchemaSimpleTypeUnion.cs
- MergeFilterQuery.cs
- DbXmlEnabledProviderManifest.cs
- SqlServices.cs
- MatrixTransform.cs
- ItemCheckEvent.cs
- TextLine.cs
- FactoryId.cs
- XslException.cs
- XmlSchemaObject.cs
- LayoutTableCell.cs
- FixedSOMSemanticBox.cs
- PropertyChangedEventManager.cs
- SspiWrapper.cs
- WebEventCodes.cs
- SubclassTypeValidatorAttribute.cs
- PageWrapper.cs
- HierarchicalDataSourceControl.cs
- DataListItem.cs
- AssemblyBuilder.cs
- Model3DGroup.cs
- HwndAppCommandInputProvider.cs
- TripleDES.cs
- DescendantBaseQuery.cs
- SingleKeyFrameCollection.cs
- DataGridViewIntLinkedList.cs
- HierarchicalDataSourceConverter.cs
- ApplicationDirectoryMembershipCondition.cs
- TypeReference.cs
- HttpListenerContext.cs
- ClientSponsor.cs
- MiniMapControl.xaml.cs
- EncryptedXml.cs
- XsltArgumentList.cs
- XmlSchemaInfo.cs
- SystemSounds.cs
- _ServiceNameStore.cs
- BufferedGraphics.cs
- CodeTypeMemberCollection.cs
- SafePEFileHandle.cs
- InputLanguageEventArgs.cs
- WorkerRequest.cs
- DataGridHeaderBorder.cs
- __Filters.cs
- SafeViewOfFileHandle.cs
- FileUpload.cs
- DataGridTextBoxColumn.cs
- updateconfighost.cs
- AccessibilityApplicationManager.cs
- TdsParameterSetter.cs
- securitycriticaldataClass.cs
- FormsAuthenticationUserCollection.cs
- PageThemeBuildProvider.cs
- LogPolicy.cs
- DbConnectionPoolIdentity.cs
- BordersPage.cs
- _LoggingObject.cs
- MemberNameValidator.cs
- TokenBasedSet.cs
- RecognizedWordUnit.cs
- EventMap.cs
- TrackingLocation.cs
- XmlAtomicValue.cs
- DuplexSecurityProtocolFactory.cs
- DescendentsWalkerBase.cs
- ToolZoneDesigner.cs
- HtmlHistory.cs
- SchemaNamespaceManager.cs
- HMAC.cs
- IntPtr.cs
- VectorCollectionValueSerializer.cs
- ComponentChangingEvent.cs
- MergeEnumerator.cs
- SearchForVirtualItemEventArgs.cs
- CacheAxisQuery.cs
- SqlGatherProducedAliases.cs