NgenServicingAttributes.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / NgenServicingAttributes.cs / 1305376 / NgenServicingAttributes.cs

                            using System; 

namespace System.Runtime
{
    [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] 
    public sealed class AssemblyTargetedPatchBandAttribute : Attribute
    { 
        private String m_targetedPatchBand; 

        public AssemblyTargetedPatchBandAttribute(String targetedPatchBand) 
        {
            m_targetedPatchBand = targetedPatchBand;
        }
 
        public String TargetedPatchBand
        { 
            get { return m_targetedPatchBand; } 
        }
    } 

// This attribute seems particularly prone to accidental inclusion in bcl.small
// We would only want to do so intentionally (if targeted patching were enabled there)
#if !FEATURE_CORECLR 

    //============================================================================================================ 
    // [TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")] - 
    // Sacrifices cheap servicing of a method body in order to allow unrestricted inlining.  Certain types of
    // trivial methods (e.g. simple property getters) are automatically attributed by ILCA.EXE during the build. 
    // For other performance critical methods, it should be added manually.
    //===========================================================================================================

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)] 
    public sealed class TargetedPatchingOptOutAttribute : Attribute
    { 
        private String m_reason; 

        public TargetedPatchingOptOutAttribute(String reason) 
        {
            m_reason = reason;
        }
 
        public String Reason
        { 
            get { return m_reason; } 
        }
 
        private TargetedPatchingOptOutAttribute() { }
    }

#endif 

    //=========================================================================================================== 
    // [ForceTokenStabilization] - Using this CA forces ILCA.EXE to stabilize the attached type, method or field. 
    // We use this to identify private helper methods invoked by IL stubs.
    // 
    // NOTE: Attaching this to a type is NOT equivalent to attaching it to all of its methods!
    //===========================================================================================================
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface |
                    AttributeTargets.Method | AttributeTargets.Constructor | 
                    AttributeTargets.Field
                   , AllowMultiple = false, Inherited = false)] 
    sealed class ForceTokenStabilizationAttribute : Attribute 
    {
        public ForceTokenStabilizationAttribute() { } 
    }

}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System; 

namespace System.Runtime
{
    [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] 
    public sealed class AssemblyTargetedPatchBandAttribute : Attribute
    { 
        private String m_targetedPatchBand; 

        public AssemblyTargetedPatchBandAttribute(String targetedPatchBand) 
        {
            m_targetedPatchBand = targetedPatchBand;
        }
 
        public String TargetedPatchBand
        { 
            get { return m_targetedPatchBand; } 
        }
    } 

// This attribute seems particularly prone to accidental inclusion in bcl.small
// We would only want to do so intentionally (if targeted patching were enabled there)
#if !FEATURE_CORECLR 

    //============================================================================================================ 
    // [TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")] - 
    // Sacrifices cheap servicing of a method body in order to allow unrestricted inlining.  Certain types of
    // trivial methods (e.g. simple property getters) are automatically attributed by ILCA.EXE during the build. 
    // For other performance critical methods, it should be added manually.
    //===========================================================================================================

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)] 
    public sealed class TargetedPatchingOptOutAttribute : Attribute
    { 
        private String m_reason; 

        public TargetedPatchingOptOutAttribute(String reason) 
        {
            m_reason = reason;
        }
 
        public String Reason
        { 
            get { return m_reason; } 
        }
 
        private TargetedPatchingOptOutAttribute() { }
    }

#endif 

    //=========================================================================================================== 
    // [ForceTokenStabilization] - Using this CA forces ILCA.EXE to stabilize the attached type, method or field. 
    // We use this to identify private helper methods invoked by IL stubs.
    // 
    // NOTE: Attaching this to a type is NOT equivalent to attaching it to all of its methods!
    //===========================================================================================================
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface |
                    AttributeTargets.Method | AttributeTargets.Constructor | 
                    AttributeTargets.Field
                   , AllowMultiple = false, Inherited = false)] 
    sealed class ForceTokenStabilizationAttribute : Attribute 
    {
        public ForceTokenStabilizationAttribute() { } 
    }

}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

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