System.Runtime.CompilerServices Namespace

The System.Runtime.CompilerServices namespace provides functionality for compiler writers who use managed code to specify attributes in metadata that affect the run-time behavior of the common language runtime.

Remarks

This namespace is primarily for compiler writers, although several of its classes, such as InternalsVisibleToAttribute, are used in a wide variety of applications.

Classes

TypeReason
AccessedThroughPropertyAttribute

Specifies the name of the property that accesses the attributed field.

AsyncStateMachineAttribute

Indicates whether a method is marked with either the Async (Visual Basic) or async (C# Reference) modifier.

AsyncTaskMethodBuilder

Represents a builder for asynchronous methods that return a task.

AsyncTaskMethodBuilder<TResult>

Represents a builder for asynchronous methods that returns a task and provides a parameter for the result.

AsyncVoidMethodBuilder

Represents a builder for asynchronous methods that do not return a value.

CallConvCdecl

Indicates that a method should use the Cdecl calling convention.

CallConvFastcall

This calling convention is not supported in this version of the .NET Framework.

CallConvStdcall

Indicates that a method should use the StdCall calling convention.

CallConvThiscall

Indicates that a method should use the ThisCall calling convention.

CallerFilePathAttribute

Allows you to obtain the full path of the source file that contains the caller. This is the file path at the time of compile.

CallerLineNumberAttribute

Allows you to obtain the line number in the source file at which the method is called.

CallerMemberNameAttribute

Allows you to obtain the method or property name of the caller to the method.

CallSite

A dynamic call site base class. This type is used as a parameter type to the dynamic site targets.

CallSite<T>

Dynamic site type.

CallSiteBinder

Class responsible for runtime binding of the dynamic operations on the dynamic call site.

CallSiteHelpers

Class that contains helper methods for DLR CallSites.

CallSiteOps

Creates and caches binding rules.

Closure

Represents the runtime state of a dynamically generated method.

CompilationRelaxations

Specifies parameters that control the strictness of the code generated by the common language runtime's just-in-time (JIT) compiler.

CompilationRelaxationsAttribute

Controls the strictness of the code generated by the common language runtime's just-in-time (JIT) compiler.

CompilerGeneratedAttribute

Distinguishes a compiler-generated element from a user-generated element. This class cannot be inherited.

CompilerGlobalScopeAttribute

Indicates that a class should be treated as if it has global scope.

CompilerMarshalOverride

Indicates that the modified instance of a variable differs from its true type when marshaling. This class cannot be inherited.

ConditionalWeakTable<TKey,TValue>
ConditionalWeakTable<TKey,TValue>+CreateValueCallback

Enables compilers to dynamically attach object fields to managed objects.

ConfiguredTaskAwaitable

Provides an awaitable object that enables configured awaits on a task.

ConfiguredTaskAwaitable+ConfiguredTaskAwaiter
ConfiguredTaskAwaitable<TResult>
ConfiguredTaskAwaitable<TResult>+ConfiguredTaskAwaiter

Provides an awaitable object that enables configured awaits on a task.

ContractHelper

Provides methods that the binary rewriter uses to handle contract failures.

CustomConstantAttribute

Defines a constant value that a compiler can persist for a field or method parameter.

DateTimeConstantAttribute

Persists an 8-byte DateTime constant for a field or parameter.

DebugInfoGenerator

Generates debug information for lambda expressions in an expression tree.

DecimalConstantAttribute

Stores the value of a Decimal constant in metadata. This class cannot be inherited.

DefaultDependencyAttribute

Provides a hint to the common language runtime (CLR) indicating how likely a dependency is to be loaded. This class is used in a dependent assembly to indicate what hint should be used when the parent does not specify the DependencyAttribute attribute. This class cannot be inherited.

DependencyAttribute

Indicates when a dependency is to be loaded by the referring assembly. This class cannot be inherited.

DiscardableAttribute

Marks a type definition as discardable.

DynamicAttribute

Indicates that the use of Object on a member is meant to be treated as a dynamically dispatched type.

ExecutionScope

Represents the runtime state of a dynamically generated method.

ExtensionAttribute
ExtensionAttribute

Indicates that a method is an extension method, or that a class or assembly contains extension methods.

FixedAddressValueTypeAttribute

Fixes the address of a static value type field throughout its lifetime. This class cannot be inherited.

FixedBufferAttribute

Indicates that a field should be treated as containing a fixed number of elements of the specified primitive type. This class cannot be inherited.

HasCopySemanticsAttribute

This class is not used in the .NET Framework version 2.0 and is reserved for future use. This class cannot be inherited.

IAsyncStateMachine

Represents state machines that are generated for asynchronous methods. This type is intended for compiler use only.

ICriticalNotifyCompletion

Represents an awaiter that schedules continuations when an await operation completes.

IDispatchConstantAttribute

Indicates that the default value for the attributed field or parameter is an instance of DispatchWrapper, where the DispatchWrapper.WrappedObject is null.

IndexerNameAttribute

Indicates the name by which an indexer is known in programming languages that do not support indexers directly.

INotifyCompletion

Represents an operation that schedules continuations when it completes.

InternalsVisibleToAttribute

Specifies that types that are ordinarily visible only within the current assembly are visible to a specified assembly.

IRuntimeVariables

Represents the values of run-time variables.

IsBoxed

Indicates that the modified reference type is a boxed value type. This class cannot be inherited.

IsByValue

Indicates that a modified method argument should be interpreted as having object passed-by-value semantics. This modifier is applied to reference types. This class cannot be inherited.

IsConst

Indicates that the modified type has a const modifier. This class cannot be inherited.

IsCopyConstructed

Indicates that any copying of values of this type must use the copy constructor provided by the type. This class cannot be inherited.

IsExplicitlyDereferenced

Indicates that a managed pointer represents a pointer parameter within a method signature. This class cannot be inherited.

IsImplicitlyDereferenced

Indicates that the modified garbage collection reference represents a reference parameter within a method signature. This class cannot be inherited.

IsJitIntrinsic

Indicates that a modified method is an intrinsic value for which the just-in-time (JIT) compiler can perform special code generation. This class cannot be inherited.

IsLong

Indicates that a modified integer is a standard C++ long value. This class cannot be inherited.

IsPinned

Indicates that a modified instance is pinned in memory. This class cannot be inherited.

IsSignUnspecifiedByte

Indicates that a modifier is neither signed nor unsigned. This class cannot be inherited.

IStrongBox

Defines a property for accessing the value that an object references.

IsUdtReturn

Indicates that a return type is a user-defined type. This class cannot be inherited.

IsVolatile

Marks a field as volatile. This class cannot be inherited.

IteratorStateMachineAttribute

Indicates whether a method in Visual Basic is marked with the Iterator modifier.

IUnknownConstantAttribute

Indicates that the default value for the attributed field or parameter is an instance of UnknownWrapper, where the UnknownWrapper.WrappedObject is null. This class cannot be inherited.

LoadHint

Specifies the preferred default binding for a dependent assembly.

MethodCodeType

Defines how a method is implemented.

MethodImplAttribute

Specifies the details of how a method is implemented. This class cannot be inherited.

MethodImplOptions

Defines the details of how a method is implemented.

NativeCppClassAttribute

Applies metadata to an assembly that indicates that a type is an unmanaged type. This class cannot be inherited.

ReadOnlyCollectionBuilder<T>

The builder for read only collection.

ReferenceAssemblyAttribute

Identifies an assembly as a reference assembly, which contains metadata but no executable code.

RequiredAttributeAttribute

Specifies that an importing compiler must fully understand the semantics of a type definition, or refuse to use it. This class cannot be inherited.

RuleCache<T>

Represents a cache of runtime binding rules.

RuntimeCompatibilityAttribute

Specifies whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object. This class cannot be inherited.

RuntimeHelpers

Provides a set of static methods and properties that provide support for compilers. This class cannot be inherited.

RuntimeHelpers+CleanupCode
RuntimeHelpers+TryCode
RuntimeOps

Contains helper methods called from dynamically generated methods.

RuntimeWrappedException

Wraps an exception that does not derive from the Exception class. This class cannot be inherited.

ScopelessEnumAttribute

Indicates that a native enumeration is not qualified by the enumeration type name. This class cannot be inherited.

SpecialNameAttribute

Indicates that a type or member is treated in a special way by the runtime or tools. This class cannot be inherited.

StateMachineAttribute

Allows you to determine whether a method is a state machine method.

StringFreezingAttribute

Deprecated. Freezes a string literal when creating native images using the Native Image Generator (Ngen.exe). This class cannot be inherited.

StrongBox<T>

Holds a reference to a value.

SuppressIldasmAttribute

Prevents the MSIL Disassembler (Ildasm.exe) from disassembling an assembly. This class cannot be inherited.

TaskAwaiter

Provides an object that waits for the completion of an asynchronous task.

TaskAwaiter<TResult>

Represents an object that waits for the completion of an asynchronous task and provides a parameter for the result.

TypeForwardedFromAttribute

Specifies a source Type in another assembly.

TypeForwardedToAttribute

Specifies a destination Type in another assembly.

UnsafeValueTypeAttribute

Specifies that a type contains an unmanaged array that might potentially overflow. This class cannot be inherited.

YieldAwaitable

Provides the context for waiting when asynchronously switching into a target environment.

YieldAwaitable+YieldAwaiter