CompilerResults.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / CodeDOM / Compiler / CompilerResults.cs / 1305376 / 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.Runtime.Versioning;
    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  
        ///       that uses the specified 
        ///       temporary files.
        ///     
        /// 
        [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.
        ///     
        /// 
        [Obsolete("CAS policy is obsolete and will be removed in a future release of the .NET Framework. Please see http://go2.microsoft.com/fwlink/?LinkId=131738 for more information.")]
        public Evidence Evidence {
            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] 
            get {
                Evidence e = null; 
                if (evidence != null) 
                    e = evidence.Clone();
                return e; 
            }

            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            [SecurityPermissionAttribute( SecurityAction.Demand, ControlEvidence = true )] 
            set {
                if (value != null) 
                    evidence = value.Clone(); 
                else
                    evidence = null; 
            }
        }

        ///  
        ///    
        ///       The compiled assembly. 
        ///     
        /// 
        public Assembly CompiledAssembly { 
            [SecurityPermissionAttribute(SecurityAction.Assert, Flags=SecurityPermissionFlag.ControlEvidence)]
            [ResourceExposure(ResourceScope.None)]
            [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
            get { 
                if (compiledAssembly == null && pathToAssembly != null) {
                    AssemblyName assemName = new AssemblyName(); 
                    assemName.CodeBase = pathToAssembly; 
#pragma warning disable 618 // Load with evidence is obsolete - this warning is passed on via the Evidence property
                    compiledAssembly = Assembly.Load(assemName,evidence); 
#pragma warning restore 618
                }
                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")]
            [ResourceExposure(ResourceScope.Machine)] 
            get { 
                return pathToAssembly;
            } 

            [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
            [ResourceExposure(ResourceScope.Machine)]
            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;
            } 
        }
    } 
} 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK