Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / CodeDOM / Compiler / CompilerInfo.cs / 2 / 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 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; } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StylusPointPropertyId.cs
- ListSourceHelper.cs
- NameTable.cs
- KeySplineConverter.cs
- RangeContentEnumerator.cs
- SqlReorderer.cs
- X509WindowsSecurityToken.cs
- ListViewDeleteEventArgs.cs
- RemotingAttributes.cs
- ConfigXmlAttribute.cs
- DataGridViewTopRowAccessibleObject.cs
- RawMouseInputReport.cs
- DockAndAnchorLayout.cs
- ClientSettingsSection.cs
- MsmqPoisonMessageException.cs
- ProcessingInstructionAction.cs
- OutputCacheProviderCollection.cs
- SessionSwitchEventArgs.cs
- PropertyPathWorker.cs
- DataListItemCollection.cs
- _FtpDataStream.cs
- PriorityRange.cs
- SiteMapNodeItemEventArgs.cs
- RotateTransform.cs
- ImageMap.cs
- AutoSizeToolBoxItem.cs
- SchemaImporterExtension.cs
- SystemTcpStatistics.cs
- DataGridViewCellValidatingEventArgs.cs
- SeekStoryboard.cs
- WebServiceBindingAttribute.cs
- ServiceDescription.cs
- TrustSection.cs
- ListDataBindEventArgs.cs
- DocumentViewerBaseAutomationPeer.cs
- EarlyBoundInfo.cs
- HostProtectionPermission.cs
- RegexWriter.cs
- SecurityTokenValidationException.cs
- WorkflowRuntimeServicesBehavior.cs
- RoutedUICommand.cs
- MetaChildrenColumn.cs
- TypeConstant.cs
- SafeViewOfFileHandle.cs
- TextDocumentView.cs
- MailMessageEventArgs.cs
- InvokeBinder.cs
- PriorityItem.cs
- User.cs
- SqlDataSourceCommandParser.cs
- TreeNode.cs
- XmlNamedNodeMap.cs
- NativeRightsManagementAPIsStructures.cs
- ProcessModelSection.cs
- ListItemConverter.cs
- EditorPartChrome.cs
- login.cs
- ColorConverter.cs
- PointHitTestResult.cs
- RequestCacheEntry.cs
- Floater.cs
- ContainerControl.cs
- ServiceEndpointElement.cs
- BoolExpressionVisitors.cs
- FactoryMaker.cs
- QuaternionRotation3D.cs
- SharedPersonalizationStateInfo.cs
- OfTypeExpression.cs
- ListItem.cs
- PeerNearMe.cs
- Line.cs
- ColorAnimation.cs
- EUCJPEncoding.cs
- SoapElementAttribute.cs
- GrammarBuilderBase.cs
- SqlLiftIndependentRowExpressions.cs
- RTLAwareMessageBox.cs
- Merger.cs
- AssemblyHash.cs
- FrameworkRichTextComposition.cs
- DataTable.cs
- SQLMoneyStorage.cs
- LogStream.cs
- TemplateColumn.cs
- SafeNativeMemoryHandle.cs
- StrongTypingException.cs
- SchemaTableOptionalColumn.cs
- OleDbWrapper.cs
- TreeView.cs
- FlowSwitchLink.cs
- WebServiceMethodData.cs
- TdsParameterSetter.cs
- SchemaDeclBase.cs
- GridViewActionList.cs
- WebPartsSection.cs
- XmlSchemaComplexContentExtension.cs
- InputBuffer.cs
- OracleDateTime.cs
- TypeReference.cs
- ToolStripDropDownClosingEventArgs.cs