Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / CodeDOM / Compiler / CompilerInfo.cs / 1305376 / CompilerInfo.cs
//------------------------------------------------------------------------------
//
//
// [....]
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.CodeDom.Compiler {
using System;
using System.Reflection;
using System.Security.Permissions;
using System.CodeDom.Compiler;
using System.Configuration;
using System.Collections.Generic;
using System.Diagnostics;
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public sealed class CompilerInfo {
internal String _codeDomProviderTypeName; // This can never by null
internal CompilerParameters _compilerParams; // This can never by null
internal String[] _compilerLanguages; // This can never by null
internal String[] _compilerExtensions; // This can never by null
internal String configFileName;
internal IDictionary _providerOptions; // This can never be null
internal int configFileLineNumber;
internal Boolean _mapped;
private Type type;
private CompilerInfo() {} // Not createable
public String[] GetLanguages() {
return CloneCompilerLanguages();
}
public String[] GetExtensions() {
return CloneCompilerExtensions();
}
public Type CodeDomProviderType {
get {
if( type == null) {
lock(this) {
if( type == null) {
type = Type.GetType(_codeDomProviderTypeName);
if (type == null) {
if( configFileName == null) {
throw new ConfigurationErrorsException(SR.GetString(SR.Unable_To_Locate_Type,
_codeDomProviderTypeName, string.Empty, 0));
}
else {
throw new ConfigurationErrorsException(SR.GetString(SR.Unable_To_Locate_Type,
_codeDomProviderTypeName), configFileName, configFileLineNumber);
}
}
}
}
}
return type;
}
}
public bool IsCodeDomProviderTypeValid {
get {
Type type = Type.GetType(_codeDomProviderTypeName);
return (type != null);
}
}
public CodeDomProvider CreateProvider() {
// if the provider defines an IDictionary ctor and
// provider options have been provided then call that and give it the
// provider options dictionary. Otherwise call the normal one.
Debug.Assert(_providerOptions != null, "Created CompilerInfo w/ null _providerOptions");
if (_providerOptions.Count > 0) {
ConstructorInfo ci = CodeDomProviderType.GetConstructor(new Type[] { typeof(IDictionary) });
if (ci != null) {
return (CodeDomProvider)ci.Invoke(new object[] { _providerOptions });
}
}
return (CodeDomProvider)Activator.CreateInstance(CodeDomProviderType);
}
public CodeDomProvider CreateProvider(IDictionary providerOptions)
{
if (providerOptions == null)
throw new ArgumentNullException("providerOptions");
ConstructorInfo constructor = CodeDomProviderType.GetConstructor(new Type[] { typeof(IDictionary) });
if (constructor != null) {
return (CodeDomProvider)constructor.Invoke(new object[] { providerOptions });
}
else
throw new InvalidOperationException(SR.GetString(SR.Provider_does_not_support_options, CodeDomProviderType.ToString()));
}
public CompilerParameters CreateDefaultCompilerParameters() {
return CloneCompilerParameters();
}
internal CompilerInfo(CompilerParameters compilerParams, String codeDomProviderTypeName, String[] compilerLanguages, String[] compilerExtensions) {
_compilerLanguages = compilerLanguages;
_compilerExtensions = compilerExtensions;
_codeDomProviderTypeName = codeDomProviderTypeName;
if (compilerParams == null)
compilerParams = new CompilerParameters();
_compilerParams = compilerParams;
}
internal CompilerInfo(CompilerParameters compilerParams, String codeDomProviderTypeName) {
_codeDomProviderTypeName = codeDomProviderTypeName;
if (compilerParams == null)
compilerParams = new CompilerParameters();
_compilerParams = compilerParams;
}
public override int GetHashCode() {
return _codeDomProviderTypeName.GetHashCode();
}
public override bool Equals(Object o) {
CompilerInfo other = o as CompilerInfo;
if (o == null)
return false;
return CodeDomProviderType == other.CodeDomProviderType &&
CompilerParams.WarningLevel == other.CompilerParams.WarningLevel &&
CompilerParams.IncludeDebugInformation == other.CompilerParams.IncludeDebugInformation &&
CompilerParams.CompilerOptions == other.CompilerParams.CompilerOptions;
}
private CompilerParameters CloneCompilerParameters() {
CompilerParameters copy = new CompilerParameters();
copy.IncludeDebugInformation = _compilerParams.IncludeDebugInformation;
copy.TreatWarningsAsErrors = _compilerParams.TreatWarningsAsErrors;
copy.WarningLevel = _compilerParams.WarningLevel;
copy.CompilerOptions = _compilerParams.CompilerOptions;
return copy;
}
private String[] CloneCompilerLanguages() {
String[] compilerLanguages = new String[_compilerLanguages.Length];
Array.Copy(_compilerLanguages, compilerLanguages, _compilerLanguages.Length);
return compilerLanguages;
}
private String[] CloneCompilerExtensions() {
String[] compilerExtensions = new String[_compilerExtensions.Length];
Array.Copy(_compilerExtensions, compilerExtensions, _compilerExtensions.Length);
return compilerExtensions;
}
internal CompilerParameters CompilerParams {
get {
return _compilerParams;
}
}
// @
internal IDictionary ProviderOptions {
get {
return _providerOptions;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
//
// [....]
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.CodeDom.Compiler {
using System;
using System.Reflection;
using System.Security.Permissions;
using System.CodeDom.Compiler;
using System.Configuration;
using System.Collections.Generic;
using System.Diagnostics;
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public sealed class CompilerInfo {
internal String _codeDomProviderTypeName; // This can never by null
internal CompilerParameters _compilerParams; // This can never by null
internal String[] _compilerLanguages; // This can never by null
internal String[] _compilerExtensions; // This can never by null
internal String configFileName;
internal IDictionary _providerOptions; // This can never be null
internal int configFileLineNumber;
internal Boolean _mapped;
private Type type;
private CompilerInfo() {} // Not createable
public String[] GetLanguages() {
return CloneCompilerLanguages();
}
public String[] GetExtensions() {
return CloneCompilerExtensions();
}
public Type CodeDomProviderType {
get {
if( type == null) {
lock(this) {
if( type == null) {
type = Type.GetType(_codeDomProviderTypeName);
if (type == null) {
if( configFileName == null) {
throw new ConfigurationErrorsException(SR.GetString(SR.Unable_To_Locate_Type,
_codeDomProviderTypeName, string.Empty, 0));
}
else {
throw new ConfigurationErrorsException(SR.GetString(SR.Unable_To_Locate_Type,
_codeDomProviderTypeName), configFileName, configFileLineNumber);
}
}
}
}
}
return type;
}
}
public bool IsCodeDomProviderTypeValid {
get {
Type type = Type.GetType(_codeDomProviderTypeName);
return (type != null);
}
}
public CodeDomProvider CreateProvider() {
// if the provider defines an IDictionary ctor and
// provider options have been provided then call that and give it the
// provider options dictionary. Otherwise call the normal one.
Debug.Assert(_providerOptions != null, "Created CompilerInfo w/ null _providerOptions");
if (_providerOptions.Count > 0) {
ConstructorInfo ci = CodeDomProviderType.GetConstructor(new Type[] { typeof(IDictionary) });
if (ci != null) {
return (CodeDomProvider)ci.Invoke(new object[] { _providerOptions });
}
}
return (CodeDomProvider)Activator.CreateInstance(CodeDomProviderType);
}
public CodeDomProvider CreateProvider(IDictionary providerOptions)
{
if (providerOptions == null)
throw new ArgumentNullException("providerOptions");
ConstructorInfo constructor = CodeDomProviderType.GetConstructor(new Type[] { typeof(IDictionary) });
if (constructor != null) {
return (CodeDomProvider)constructor.Invoke(new object[] { providerOptions });
}
else
throw new InvalidOperationException(SR.GetString(SR.Provider_does_not_support_options, CodeDomProviderType.ToString()));
}
public CompilerParameters CreateDefaultCompilerParameters() {
return CloneCompilerParameters();
}
internal CompilerInfo(CompilerParameters compilerParams, String codeDomProviderTypeName, String[] compilerLanguages, String[] compilerExtensions) {
_compilerLanguages = compilerLanguages;
_compilerExtensions = compilerExtensions;
_codeDomProviderTypeName = codeDomProviderTypeName;
if (compilerParams == null)
compilerParams = new CompilerParameters();
_compilerParams = compilerParams;
}
internal CompilerInfo(CompilerParameters compilerParams, String codeDomProviderTypeName) {
_codeDomProviderTypeName = codeDomProviderTypeName;
if (compilerParams == null)
compilerParams = new CompilerParameters();
_compilerParams = compilerParams;
}
public override int GetHashCode() {
return _codeDomProviderTypeName.GetHashCode();
}
public override bool Equals(Object o) {
CompilerInfo other = o as CompilerInfo;
if (o == null)
return false;
return CodeDomProviderType == other.CodeDomProviderType &&
CompilerParams.WarningLevel == other.CompilerParams.WarningLevel &&
CompilerParams.IncludeDebugInformation == other.CompilerParams.IncludeDebugInformation &&
CompilerParams.CompilerOptions == other.CompilerParams.CompilerOptions;
}
private CompilerParameters CloneCompilerParameters() {
CompilerParameters copy = new CompilerParameters();
copy.IncludeDebugInformation = _compilerParams.IncludeDebugInformation;
copy.TreatWarningsAsErrors = _compilerParams.TreatWarningsAsErrors;
copy.WarningLevel = _compilerParams.WarningLevel;
copy.CompilerOptions = _compilerParams.CompilerOptions;
return copy;
}
private String[] CloneCompilerLanguages() {
String[] compilerLanguages = new String[_compilerLanguages.Length];
Array.Copy(_compilerLanguages, compilerLanguages, _compilerLanguages.Length);
return compilerLanguages;
}
private String[] CloneCompilerExtensions() {
String[] compilerExtensions = new String[_compilerExtensions.Length];
Array.Copy(_compilerExtensions, compilerExtensions, _compilerExtensions.Length);
return compilerExtensions;
}
internal CompilerParameters CompilerParams {
get {
return _compilerParams;
}
}
// @
internal IDictionary ProviderOptions {
get {
return _providerOptions;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridAutoGeneratingColumnEventArgs.cs
- SQLMembershipProvider.cs
- StringCollection.cs
- SourceFileInfo.cs
- ValuePattern.cs
- XPathDescendantIterator.cs
- AuthenticationServiceManager.cs
- TypeBuilder.cs
- Rotation3DAnimation.cs
- KnownTypesProvider.cs
- DurableRuntimeValidator.cs
- QilList.cs
- DeviceContexts.cs
- ResXBuildProvider.cs
- ValidationRule.cs
- ConnectionPoint.cs
- VisualBasicSettingsConverter.cs
- ListManagerBindingsCollection.cs
- IDReferencePropertyAttribute.cs
- PixelFormatConverter.cs
- MaskPropertyEditor.cs
- ImageBrush.cs
- MemoryFailPoint.cs
- HandleExceptionArgs.cs
- Subtree.cs
- DataGridViewCellPaintingEventArgs.cs
- versioninfo.cs
- MachineKeyConverter.cs
- KeyMatchBuilder.cs
- BrowserCapabilitiesCodeGenerator.cs
- InternalDispatchObject.cs
- InputProcessorProfilesLoader.cs
- ComPlusTypeLoader.cs
- UpdateTranslator.cs
- TypographyProperties.cs
- dbenumerator.cs
- WebRequest.cs
- TimeSpan.cs
- FlowDocumentPaginator.cs
- FastEncoder.cs
- StringAnimationUsingKeyFrames.cs
- MemberCollection.cs
- SchemaCollectionCompiler.cs
- FormsAuthenticationUserCollection.cs
- DataGridViewDesigner.cs
- _CacheStreams.cs
- TimeSpanParse.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- GridViewSortEventArgs.cs
- DesignColumn.cs
- UnknownExceptionActionHelper.cs
- MethodAccessException.cs
- HttpContext.cs
- BaseProcessProtocolHandler.cs
- RepeaterDesigner.cs
- StrokeCollectionConverter.cs
- CollectionsUtil.cs
- XmlAutoDetectWriter.cs
- Timeline.cs
- SecondaryViewProvider.cs
- UseAttributeSetsAction.cs
- DispatcherOperation.cs
- NamespaceInfo.cs
- UserNameSecurityTokenParameters.cs
- SafeSystemMetrics.cs
- EnumValidator.cs
- FastEncoderStatics.cs
- SpecularMaterial.cs
- GeneralTransformCollection.cs
- ViewLoader.cs
- TextElementEditingBehaviorAttribute.cs
- SchemaImporterExtensionElement.cs
- TrackingProfile.cs
- HttpHeaderCollection.cs
- CommunicationException.cs
- TransformedBitmap.cs
- VirtualizedItemProviderWrapper.cs
- ResXResourceSet.cs
- InputQueue.cs
- PublisherMembershipCondition.cs
- ConnectionPointCookie.cs
- TextAnchor.cs
- PositiveTimeSpanValidatorAttribute.cs
- Visual.cs
- NeutralResourcesLanguageAttribute.cs
- LayoutTable.cs
- Ray3DHitTestResult.cs
- DragEvent.cs
- CompoundFileDeflateTransform.cs
- ScriptResourceDefinition.cs
- InfoCardUIAgent.cs
- HtmlControl.cs
- ProcessThreadCollection.cs
- XmlSchemaObject.cs
- XPathAncestorIterator.cs
- WhitespaceSignificantCollectionAttribute.cs
- WCFModelStrings.Designer.cs
- Resources.Designer.cs
- PolicyStatement.cs
- ClientProxyGenerator.cs