RuntimeEnvironment.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Runtime / InteropServices / RuntimeEnvironment.cs / 1 / RuntimeEnvironment.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** Class: RuntimeEnvironment 
**
** 
** Purpose: Runtime information
**
**
=============================================================================*/ 

using System; 
using System.Text; 
using System.IO;
using System.Runtime.CompilerServices; 
using System.Security.Permissions;
using System.Reflection;
using Microsoft.Win32;
 
namespace System.Runtime.InteropServices {
[System.Runtime.InteropServices.ComVisible(true)] 
    public class RuntimeEnvironment { 

        [MethodImplAttribute(MethodImplOptions.InternalCall)] 
        internal static extern String GetModuleFileName();

        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        internal static extern String GetDeveloperPath(); 

        [MethodImplAttribute(MethodImplOptions.InternalCall)] 
        internal static extern String GetHostBindingFile(); 

        [DllImport(Win32Native.SHIM, CharSet=CharSet.Unicode, CallingConvention=CallingConvention.StdCall)] 
        private static extern int GetCORVersion(StringBuilder sb, int BufferLength, ref int retLength);

        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        public static extern bool FromGlobalAccessCache(Assembly a); 

        public static String GetSystemVersion() 
        { 
            StringBuilder s = new StringBuilder(256);
            int retLength = 0; 
            if(GetCORVersion(s, 256, ref retLength) == 0)
                return s.ToString();
            else
                return null; 
        }
 
        public static String GetRuntimeDirectory() 
        {
            String dir = GetRuntimeDirectoryImpl(); 
            new FileIOPermission(FileIOPermissionAccess.PathDiscovery, dir).Demand();
            return dir;
        }
 
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        internal static extern String GetRuntimeDirectoryImpl(); 
 
        // Returns the system ConfigurationFile
        public static String SystemConfigurationFile { 
            get {
                StringBuilder sb = new StringBuilder(Path.MAX_PATH);
                sb.Append(GetRuntimeDirectory());
                sb.Append(AppDomainSetup.RuntimeConfigurationFile); 
                String path = sb.ToString();
 
                // Do security check 
                new FileIOPermission(FileIOPermissionAccess.PathDiscovery, path).Demand();
 
                return path;
            }
        }
 
    }
} 


                        

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