Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / Compiler.cs / 3 / Compiler.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.Globalization;
using System.IO;
using System.Text;
using System.Web.Compilation;
using System.Reflection;
using System.Web.Hosting;
using System.Web.UI;
using System.CodeDom.Compiler;
using System.Web.Util;
using System.ComponentModel;
using System.Security.Permissions;
// CompilerCollection
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class Compiler : ConfigurationElement {
private const string compilerOptionsAttribName = "compilerOptions";
private static ConfigurationPropertyCollection _properties;
private static readonly ConfigurationProperty _propLanguage =
new ConfigurationProperty("language", typeof(string), String.Empty, ConfigurationPropertyOptions.None );
private static readonly ConfigurationProperty _propExtension =
new ConfigurationProperty("extension", typeof(string), String.Empty, ConfigurationPropertyOptions.None);
private static readonly ConfigurationProperty _propType =
new ConfigurationProperty("type", typeof(string), String.Empty, ConfigurationPropertyOptions.IsRequired);
private static readonly ConfigurationProperty _propWarningLevel =
new ConfigurationProperty("warningLevel",
typeof(int),
0,
null,
new IntegerValidator(0, 4),
ConfigurationPropertyOptions.None);
private static readonly ConfigurationProperty _propCompilerOptions =
new ConfigurationProperty(compilerOptionsAttribName, typeof(string), String.Empty, ConfigurationPropertyOptions.None);
private CompilerType _compilerType;
static Compiler() {
// Property initialization
_properties = new ConfigurationPropertyCollection();
_properties.Add(_propLanguage);
_properties.Add(_propExtension);
_properties.Add(_propType);
_properties.Add(_propWarningLevel);
_properties.Add(_propCompilerOptions);
}
internal Compiler() {
}
public Compiler(String compilerOptions, String extension, String language, String type, int warningLevel)
: this() {
base[_propCompilerOptions] = compilerOptions;
base[_propExtension] = extension;
base[_propLanguage] = language;
base[_propType] = type;
base[_propWarningLevel] = warningLevel;
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
[ConfigurationProperty("language", DefaultValue = "", IsRequired = true, IsKey = true)]
public string Language {
get {
return (string)base[_propLanguage];
}
// Remove to satisfy defect number 178343
//set
//{
// base[_propLanguage] = value;
//}
}
[ConfigurationProperty("extension", DefaultValue = "")]
public string Extension {
get {
return (string)base[_propExtension];
}
// Remove to satisfy defect number 178343
//set
//{
// base[_propExtension] = value;
//}
}
[ConfigurationProperty("type", IsRequired = true, DefaultValue = "")]
public string Type {
get {
return (string)base[_propType];
}
// Remove to satisfy defect number 178343
//set
//{
// base[_propType] = value;
//}
}
internal CompilerType CompilerTypeInternal {
get {
if (_compilerType == null) {
lock (this) {
if (_compilerType == null) {
Type codeDomProviderType = CompilationUtil.LoadTypeWithChecks(
Type, typeof(CodeDomProvider), null, this, "type");
System.CodeDom.Compiler.CompilerParameters compilParams = new CompilerParameters();
compilParams.WarningLevel = WarningLevel;
// Need to be false if the warning level is 0
compilParams.TreatWarningsAsErrors = (WarningLevel > 0);
// Only allow the use of compilerOptions when we have UnmanagedCode access (ASURT 73678)
string compilerOptions = CompilerOptions;
// Only allow the use of compilerOptions when we have UnmanagedCode access (ASURT 73678)
CompilationUtil.CheckCompilerOptionsAllowed(compilerOptions, true /*config*/,
ElementInformation.Properties[compilerOptionsAttribName].Source,
ElementInformation.Properties[compilerOptionsAttribName].LineNumber);
compilParams.CompilerOptions = compilerOptions;
_compilerType = new CompilerType(codeDomProviderType, compilParams);
}
}
}
return _compilerType;
}
}
[ConfigurationProperty("warningLevel", DefaultValue = 0)]
[IntegerValidator(MinValue = 0, MaxValue = 4)]
public int WarningLevel {
get {
return (int)base[_propWarningLevel];
}
// Remove to satisfy defect number 178343
//set
//{
// base[_propWarningLevel] = value;
//}
}
[ConfigurationProperty(compilerOptionsAttribName, DefaultValue = "")]
public string CompilerOptions {
get {
return (string)base[_propCompilerOptions];
}
// Remove to satisfy defect number 178343
//set
//{
// base[_propCompilerOptions] = value;
//}
}
} // class Compiler
}
// 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
- Property.cs
- ParamArrayAttribute.cs
- ReceiveCompletedEventArgs.cs
- SemanticAnalyzer.cs
- ColumnResizeAdorner.cs
- VisualStyleInformation.cs
- RelationshipDetailsCollection.cs
- Trigger.cs
- ObjectItemNoOpAssemblyLoader.cs
- ExpressionBindingsDialog.cs
- ListView.cs
- WebPartVerbCollection.cs
- SmiMetaDataProperty.cs
- CellQuery.cs
- SwitchLevelAttribute.cs
- HttpConfigurationContext.cs
- FontStretch.cs
- PlainXmlDeserializer.cs
- ResourceKey.cs
- DocobjHost.cs
- HwndSubclass.cs
- PropVariant.cs
- OrderByBuilder.cs
- PrimitiveSchema.cs
- SqlLiftWhereClauses.cs
- FaultPropagationRecord.cs
- Queue.cs
- AuthorizationRule.cs
- GeneralTransform2DTo3D.cs
- SQLBinaryStorage.cs
- DesignerActionTextItem.cs
- InternalCache.cs
- CallbackValidator.cs
- FilterInvalidBodyAccessException.cs
- StoragePropertyMapping.cs
- SqlTypeSystemProvider.cs
- MultipartIdentifier.cs
- BinaryParser.cs
- CharStorage.cs
- ObjectSpanRewriter.cs
- EvidenceBase.cs
- QuestionEventArgs.cs
- HeaderCollection.cs
- EastAsianLunisolarCalendar.cs
- CultureMapper.cs
- NullRuntimeConfig.cs
- WaitHandleCannotBeOpenedException.cs
- errorpatternmatcher.cs
- RegularExpressionValidator.cs
- CultureInfoConverter.cs
- SchemeSettingElementCollection.cs
- PipelineModuleStepContainer.cs
- CursorConverter.cs
- ImageCodecInfo.cs
- ReturnEventArgs.cs
- DocumentGridPage.cs
- VisualTreeUtils.cs
- ActivityLocationReferenceEnvironment.cs
- UrlMappingsSection.cs
- XmlDataDocument.cs
- EntityDataSourceEntityTypeFilterItem.cs
- Group.cs
- MD5.cs
- DataSvcMapFileSerializer.cs
- SignedXml.cs
- ReadOnlyDictionary.cs
- DataGridAddNewRow.cs
- Lease.cs
- MessageDesigner.cs
- rsa.cs
- AppDomainProtocolHandler.cs
- RectAnimationUsingKeyFrames.cs
- AccessViolationException.cs
- SqlCacheDependencyDatabaseCollection.cs
- Panel.cs
- tooltip.cs
- DataServiceContext.cs
- XmlSerializerNamespaces.cs
- FrameworkPropertyMetadata.cs
- ActiveDesignSurfaceEvent.cs
- DataColumn.cs
- TextServicesPropertyRanges.cs
- HttpCookieCollection.cs
- DbProviderFactories.cs
- MemoryStream.cs
- ListParagraph.cs
- ColorConverter.cs
- DbProviderServices.cs
- Transactions.cs
- Point4D.cs
- ISessionStateStore.cs
- DynamicScriptObject.cs
- TraceUtils.cs
- BinaryFormatter.cs
- sqlmetadatafactory.cs
- ObjectListField.cs
- HttpRuntime.cs
- HtmlTitle.cs
- WebPartVerbsEventArgs.cs
- DataSourceDesigner.cs