Code:
                         / DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / CodeDOM / Compiler / CompilerResults.cs / 1 / CompilerResults.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
namespace System.CodeDom.Compiler { 
    using System; 
    using System.CodeDom;
    using System.Reflection; 
    using System.Collections;
    using System.Collections.Specialized;
    using System.Security;
    using System.Security.Permissions; 
    using System.Security.Policy;
    using System.Runtime.Serialization; 
    using System.Runtime.Serialization.Formatters.Binary; 
    using System.IO;
 
    /// 
    ///    
    ///       Represents the results 
    ///       of compilation from the compiler.
    ///      
    ///   
    [Serializable()]
    [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")] 
    public class CompilerResults {
        private CompilerErrorCollection errors = new CompilerErrorCollection();
        private StringCollection output = new StringCollection();
        private Assembly compiledAssembly; 
        private string pathToAssembly;
        private int nativeCompilerReturnValue; 
        private TempFileCollection tempFiles; 
        private Evidence evidence;
 
        /// 
        ///    
        ///       Initializes a new instance of   
        ///   
        [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
        public CompilerResults(TempFileCollection tempFiles) { 
            this.tempFiles = tempFiles;
        }
        ///  
        ///    
        ///       Gets or sets the temporary files to use. 
        ///      
        ///  
        public TempFileCollection TempFiles { 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            get {
                return tempFiles;
            } 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            set { 
                tempFiles = value;
            } 
        }
        /// 
        ///     
        ///       Set the evidence for partially trusted scenarios.
        ///      
        ///   
        public Evidence Evidence {
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            get {
                Evidence e = null;
                if (evidence != null)
                    e = CloneEvidence(evidence); 
                return e;
            } 
 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            [SecurityPermissionAttribute( SecurityAction.Demand, ControlEvidence = true )] 
            set {
                if (value != null)
                    evidence = CloneEvidence(value);
                else 
                    evidence = null;
            } 
        } 
        ///  
        ///    
        ///       The compiled assembly.
        ///     
        ///   
        public Assembly CompiledAssembly {
            [SecurityPermissionAttribute(SecurityAction.Assert, Flags=SecurityPermissionFlag.ControlEvidence)] 
            get { 
                if (compiledAssembly == null && pathToAssembly != null) {
                    AssemblyName assemName = new AssemblyName(); 
                    assemName.CodeBase = pathToAssembly;
                    compiledAssembly = Assembly.Load(assemName,evidence);
                }
                return compiledAssembly; 
            }
 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            set {
                compiledAssembly = value; 
            }
        }
        ///  
        ///    
        ///       Gets or sets the collection of compiler errors. 
        ///      
        ///  
        public CompilerErrorCollection Errors { 
            get {
                return errors;
            }
        } 
        ///  
        ///     
        ///       Gets or sets the compiler output messages.
        ///      
        ///  
        public StringCollection Output {
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            get { 
                return output;
            } 
        } 
        ///  
        ///    
        ///       Gets or sets the path to the assembly.
        ///     
        ///   
        public string PathToAssembly {
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            get { 
                return pathToAssembly;
            } 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            set {
                pathToAssembly = value; 
            }
        } 
 
        /// 
        ///     
        ///       Gets or sets the compiler's return value.
        ///     
        ///  
        public int NativeCompilerReturnValue { 
            get {
                return nativeCompilerReturnValue; 
            } 
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            set {
                nativeCompilerReturnValue = value;
            }
        } 
        internal static Evidence CloneEvidence(Evidence ev) { 
            new PermissionSet( PermissionState.Unrestricted ).Assert(); 
            MemoryStream stream = new MemoryStream(); 
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize( stream, ev ); 
            stream.Position = 0; 
 
            return (Evidence)formatter.Deserialize( stream );
        } 
    }
}
                        
                        
                        
                        
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ZoomPercentageConverter.cs
- StructuredTypeEmitter.cs
- CheckBoxFlatAdapter.cs
- MemberMaps.cs
- ActivityExecutionContext.cs
- DirectoryInfo.cs
- FilterRepeater.cs
- AuthenticateEventArgs.cs
- HwndTarget.cs
- InstanceCreationEditor.cs
- dataprotectionpermissionattribute.cs
- IdleTimeoutMonitor.cs
- Section.cs
- IPAddress.cs
- ApplicationFileParser.cs
- NetworkInterface.cs
- ArglessEventHandlerProxy.cs
- ExternalDataExchangeClient.cs
- wgx_sdk_version.cs
- storepermissionattribute.cs
- Publisher.cs
- ProgressBarAutomationPeer.cs
- ExtendedTransformFactory.cs
- ArcSegment.cs
- validation.cs
- DocumentGridContextMenu.cs
- EntityCollection.cs
- SliderAutomationPeer.cs
- RegexGroup.cs
- HyperLinkColumn.cs
- CompositeDataBoundControl.cs
- InfoCardSymmetricCrypto.cs
- AsymmetricAlgorithm.cs
- Roles.cs
- Base64Decoder.cs
- Window.cs
- SplitterEvent.cs
- DisplayInformation.cs
- DbCommandDefinition.cs
- NullReferenceException.cs
- IChannel.cs
- cookiecontainer.cs
- ArgumentException.cs
- LayoutEvent.cs
- TextEffectResolver.cs
- SymbolType.cs
- StrongName.cs
- TraceHelpers.cs
- OpCodes.cs
- SyndicationSerializer.cs
- BamlRecordReader.cs
- Tile.cs
- FaultCallbackWrapper.cs
- DbMetaDataCollectionNames.cs
- CodeNamespace.cs
- AsyncOperation.cs
- PropertyRef.cs
- MorphHelpers.cs
- Rotation3DAnimationBase.cs
- Guid.cs
- VisualTreeHelper.cs
- ConfigXmlCDataSection.cs
- DataGridColumnEventArgs.cs
- ExpressionsCollectionEditor.cs
- RequiredFieldValidator.cs
- base64Transforms.cs
- ScriptReferenceBase.cs
- NameValueFileSectionHandler.cs
- CustomPopupPlacement.cs
- CleanUpVirtualizedItemEventArgs.cs
- TableLayoutPanelBehavior.cs
- ListViewSelectEventArgs.cs
- CodeTypeReference.cs
- AuthenticationManager.cs
- QuaternionAnimation.cs
- PrintControllerWithStatusDialog.cs
- ImageClickEventArgs.cs
- WSMessageEncoding.cs
- TemplatedControlDesigner.cs
- TemplateAction.cs
- TypeDependencyAttribute.cs
- UTF8Encoding.cs
- TreeViewHitTestInfo.cs
- DoubleUtil.cs
- FrameworkElement.cs
- Matrix.cs
- Deflater.cs
- ConfigPathUtility.cs
- LayoutDump.cs
- UnsafeNativeMethodsPenimc.cs
- RemoteWebConfigurationHostStream.cs
- WindowsFont.cs
- ConfigXmlComment.cs
- x509utils.cs
- WorkflowOperationBehavior.cs
- XmlReflectionImporter.cs
- DebugHandleTracker.cs
- AliasedExpr.cs
- RestHandlerFactory.cs
- figurelengthconverter.cs