This documentation is archived and is not being maintained.
System.Runtime.CompilerServices Namespace
Visual Studio 2010
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.
This namespace is primarily for compiler writers, although several of its classes, such as InternalsVisibleToAttribute, are used in a wide variety of applications.
| Class | Description | |
|---|---|---|
![]() | AccessedThroughPropertyAttribute | Specifies the name of the property that accesses the attributed field. |
![]() | 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. |
![]() | 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 | Infrastructure. Creates and caches binding rules. |
![]() | Closure | Infrastructure. Represents the runtime state of a dynamically generated method. |
![]() | 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> | Enables compilers to dynamically attach object fields to managed objects. |
![]() | 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 System::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 | Infrastructure. Obsolete. Represents the runtime state of a dynamically generated method. |
![]() | 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. |
![]() | IDispatchConstantAttribute | Indicates that the default value for the attributed field or parameter is an instance of DispatchWrapper, where the WrappedObject is nullptr. |
![]() | IndexerNameAttribute | Indicates the name by which an indexer is known in programming languages that do not support indexers directly. |
![]() | InternalsVisibleToAttribute | Specifies that types that are ordinarily visible only within the current assembly are visible to a specified assembly. |
![]() | 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. |
![]() | 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. |
![]() | IUnknownConstantAttribute | Indicates that the default value for the attributed field or parameter is an instance of UnknownWrapper, where the WrappedObject is nullptr. This class cannot be inherited. |
![]() | MethodImplAttribute | Specifies the details of how a method is implemented. This class cannot be inherited. |
![]() | 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> | Infrastructure. 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. |
![]() | RuntimeOps | Infrastructure. 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. |
![]() | StringFreezingAttribute | Deprecated. Freezes a string literal when creating native images using the Ngen.exe (Native Image Generator). This class cannot be inherited. |
![]() | StrongBox<T> | Infrastructure. Holds a reference to a value. |
![]() | SuppressIldasmAttribute | Prevents the Ildasm.exe (MSIL Disassembler) from disassembling an assembly. This class cannot be inherited. |
![]() | 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. |
| Interface | Description | |
|---|---|---|
![]() | IRuntimeVariables | Represents the values of run-time variables. |
![]() | IStrongBox | Infrastructure. Defines a property for accessing the value that an object references. |
| Delegate | Description | |
|---|---|---|
![]() | ConditionalWeakTable<TKey, TValue>::CreateValueCallback | Represents a method that creates a non-default value to add as part of a key/value pair to a ConditionalWeakTable<TKey, TValue> object. |
![]() | RuntimeHelpers::CleanupCode | Represents a method to run when an exception occurs. |
![]() | RuntimeHelpers::TryCode | Represents a delegate to code that should be run in a try block.. |
| Enumeration | Description | |
|---|---|---|
![]() | CompilationRelaxations | Specifies parameters that control the strictness of the code generated by the common language runtime's just-in-time (JIT) compiler. |
![]() | LoadHint | Specifies the preferred default binding for a dependent assembly. |
![]() | MethodCodeType | Defines how a method is implemented. |
![]() | MethodImplOptions | Defines the details of how a method is implemented. |
Show:



