Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

System.Runtime.CompilerServices Namespace

Updated: February 2009

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.

  ClassDescription
Public classAccessedThroughPropertyAttributeSpecifies the name of the property that accesses the attributed field.
Public classCallConvCdeclIndicates that a method should use the Cdecl calling convention.
Public classCallConvFastcallThis calling convention is not supported in this version of the .NET Framework.
Public classCallConvStdcallIndicates that a method should use the StdCall calling convention.
Public classCallConvThiscallIndicates that a method should use the ThisCall calling convention.
Public classCompilationRelaxationsAttributeControls the strictness of the code generated by the common language runtime's just-in-time (JIT) compiler.
Public classCompilerGeneratedAttributeDistinguishes a compiler-generated element from a user-generated element. This class cannot be inherited.
Public classCompilerGlobalScopeAttributeIndicates that a class should be treated as if it has global scope.
Public classCompilerMarshalOverrideIndicates that the modified instance of a variable differs from its true type when marshaling. This class cannot be inherited.
Public classCustomConstantAttributeDefines a constant value that a compiler can persist for a field or method parameter.
Public classDateTimeConstantAttributePersists an 8-byte DateTime constant for a field or parameter.
Public classDecimalConstantAttributeStores the value of a System.Decimal constant in metadata. This class cannot be inherited.
Public classDefaultDependencyAttributeProvides 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.
Public classDependencyAttributeIndicates when a dependency is to be loaded by the referring assembly. This class cannot be inherited.
Public classDiscardableAttributeMarks a type definition as discardable.
Public classExecutionScopeInfrastructure. Represents the runtime state of a dynamically generated method.
Public classExtensionAttributeIndicates that a method is an extension method, or that a class or assembly contains extension methods.
Public classFixedAddressValueTypeAttributeFixes the address of a static value type field throughout its lifetime. This class cannot be inherited.
Public classFixedBufferAttributeIndicates that a field should be treated as containing a fixed number of elements of the specified primitive type. This class cannot be inherited.
Public classHasCopySemanticsAttributeThis class is not used in the .NET Framework version 2.0 and is reserved for future use. This class cannot be inherited.
Public classIDispatchConstantAttributeIndicates that the default value for the attributed field or parameter is an instance of DispatchWrapper, where the WrappedObject is null.
Public classIndexerNameAttributeIndicates the name by which an indexer is known in programming languages that do not support indexers directly.
Public classInternalsVisibleToAttributeSpecifies that types that are ordinarily visible only within the current assembly are visible to another assembly.
Public classIsBoxedIndicates that the modified reference type is a boxed value type. This class cannot be inherited.
Public classIsByValueIndicates 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.
Public classIsConstIndicates that the modified type has a const modifier. This class cannot be inherited.
Public classIsCopyConstructedIndicates that any copying of values of this type must use the copy constructor provided by the type. This class cannot be inherited.
Public classIsExplicitlyDereferencedIndicates that a managed pointer represents a pointer parameter within a method signature. This class cannot be inherited.
Public classIsImplicitlyDereferencedIndicates that the modified garbage collection reference represents a reference parameter within a method signature. This class cannot be inherited.
Public classIsJitIntrinsicIndicates 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.
Public classIsLongIndicates that a modified integer is a standard C++ long value. This class cannot be inherited.
Public classIsPinnedIndicates that a modified instance is pinned in memory. This class cannot be inherited.
Public classIsSignUnspecifiedByteIndicates that a modifier is neither signed nor unsigned. This class cannot be inherited.
Public classIsUdtReturnIndicates that a return type is a user-defined type. This class cannot be inherited.
Public classIsVolatileMarks a field as volatile. This class cannot be inherited.
Public classIUnknownConstantAttributeIndicates that the default value for the attributed field or parameter is an instance of UnknownWrapper, where the WrappedObject is null. This class cannot be inherited.
Public classMethodImplAttributeSpecifies the details of how a method is implemented. This class cannot be inherited.
Public classNativeCppClassAttributeApplies metadata to an assembly that indicates that a type is an unmanaged type. This class cannot be inherited.
Public classRequiredAttributeAttributeSpecifies that an importing compiler must fully understand the semantics of a type definition, or refuse to use it. This class cannot be inherited.
Public classRuntimeCompatibilityAttributeSpecifies whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object. This class cannot be inherited.
Public classRuntimeHelpersProvides a set of static methods and properties that provide support for compilers. This class cannot be inherited.
Public classRuntimeWrappedExceptionWraps an exception that does not derive from the Exception class. This class cannot be inherited.
Public classScopelessEnumAttributeIndicates that a native enumeration is not qualified by the enumeration type name. This class cannot be inherited.
Public classSpecialNameAttributeIndicates that a type or member is treated in a special way by the runtime or tools. This class cannot be inherited.
Public classStringFreezingAttributeDeprecated. Freezes a string literal when creating native images using the Native Image Generator (Ngen.exe). This class cannot be inherited.
Public classStrongBox<T>Infrastructure. Holds a reference to a value.
Public classSuppressIldasmAttributePrevents the MSIL Disassembler (Ildasm.exe) from disassembling an assembly. This class cannot be inherited.
Public classTypeForwardedToAttributeSpecifies a destination Type in another assembly. This class cannot be inherited.
Public classUnsafeValueTypeAttributeSpecifies that a type contains an unmanaged array that might potentially overflow. This class cannot be inherited.

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

  DelegateDescription
Public delegateRuntimeHelpers.CleanupCodeRepresents a method to run when an exception occurs.
Public delegateRuntimeHelpers.TryCodeRepresents a delegate to code that should be run in a try block..

  EnumerationDescription
Public enumerationCompilationRelaxationsSpecifies parameters that control the strictness of the code generated by the common language runtime's just-in-time (JIT) compiler.
Public enumerationLoadHintSpecifies the preferred default binding for a dependent assembly.
Public enumerationMethodCodeTypeDefines how a method is implemented.
Public enumerationMethodImplOptionsDefines the details of how a method is implemented.

Date

History

Reason

February 2009

Added information about usage.

Customer feedback.

Community Additions

Show:
© 2014 Microsoft