System.Runtime.CompilerServices Namespace

Fornece funcionalidade para gravadores de compilador que usam código gerenciado para especificar atributos em metadados que afetam o comportamento em tempo de execução do common language runtime.

Classes

Nome Description
AccessedThroughPropertyAttribute

Especifica o nome da propriedade que acessa o campo atribuído.

AsyncIteratorStateMachineAttribute

Indica se um método é um iterador assíncrono.

AsyncMethodBuilderAttribute

Indica o tipo do construtor de métodos assíncronos que deve ser usado por um compilador de linguagem para criar o tipo atribuído quando usado como o tipo de retorno de um método assíncrono.

AsyncStateMachineAttribute

Indica se um método está marcado com o modificador assíncrono ou assíncrono .

CallConvCdecl

Indica que um método deve usar a Cdecl convenção de chamada.

CallConvFastcall

Não há suporte para essa convenção de chamada nesta versão do .NET.

CallConvStdcall

Indica que um método deve usar a StdCall convenção de chamada.

CallConvThiscall

Indica que um método deve usar a ThisCall convenção de chamada.

CallerFilePathAttribute

Parâmetro de marcas que deve ser preenchido com um caminho de arquivo de origem de chamador específico.

CallerLineNumberAttribute

Parâmetro de marcas que deve ser preenchido com um número de linha de chamador específico.

CallerMemberNameAttribute

Parâmetro de marcas que deve ser preenchido com o nome do membro do chamador específico.

CallSite

Uma classe base de site de chamada dinâmica. Esse tipo é usado como um tipo de parâmetro para os destinos dinâmicos do site.

CallSite<T>

Tipo de site dinâmico.

CallSiteBinder

Classe responsável pela associação de runtime das operações dinâmicas no site de chamada dinâmica.

CallSiteHelpers

Classe que contém métodos auxiliares para CallSites DLR.

CallSiteOps

Cria e armazena em cache regras de associação.

Closure

Representa o estado de runtime de um método gerado dinamicamente.

CompilationRelaxationsAttribute

Controla a rigidez do código gerado pelo compilador JIT (just-in-time) do Common Language Runtime.

CompilerGeneratedAttribute

Distingue um elemento gerado pelo compilador de um elemento gerado pelo usuário. Essa classe não pode ser herdada.

CompilerGlobalScopeAttribute

Indica que uma classe deve ser tratada como se tivesse escopo global.

CompilerMarshalOverride

Indica que a instância modificada de uma variável difere de seu tipo verdadeiro ao fazer marshaling. Essa classe não pode ser herdada.

ConditionalWeakTable<TKey,TValue>

Permite que os compiladores anexem dinamicamente campos de objeto a objetos gerenciados.

ContractHelper

Fornece métodos que o reescrita binário usa para lidar com falhas de contrato.

CustomConstantAttribute

Define um valor constante que um compilador pode persistir para um parâmetro de campo ou método.

DateTimeConstantAttribute

Persiste uma constante de 8 bytes DateTime para um campo ou parâmetro.

DebugInfoGenerator

Gera informações de depuração para expressões lambda em uma árvore de expressão.

DecimalConstantAttribute

Armazena o valor de uma constante Decimal em metadados. Essa classe não pode ser herdada.

DefaultDependencyAttribute

Fornece uma dica para o CLR (Common Language Runtime) que indica a probabilidade de uma dependência ser carregada. Essa classe é usada em um assembly dependente para indicar qual dica deve ser usada quando o pai não especifica o atributo DependencyAttribute. Essa classe não pode ser herdada.

DependencyAttribute

Indica quando uma dependência deve ser carregada pelo assembly de referência. Essa classe não pode ser herdada.

DisablePrivateReflectionAttribute

Indica que todos os membros privados contidos nos tipos de um assembly não estão disponíveis para reflexão.

DiscardableAttribute

Marca uma definição de tipo como descarte.

DynamicAttribute

Indica que o uso de Object em um membro deve ser tratado como um tipo expedido dinamicamente.

EnumeratorCancellationAttribute

Permite que os usuários de métodos assíncronos enumeráveis marquem o parâmetro que deve receber o valor do token de cancelamento de GetAsyncEnumerator(CancellationToken).

ExecutionScope

Representa o estado de runtime de um método gerado dinamicamente.

ExtensionAttribute

Indica que um método é um método de extensão ou que uma classe ou assembly contém métodos de extensão.

FixedAddressValueTypeAttribute

Corrige o endereço de um campo de tipo de valor estático ao longo de seu tempo de vida. Essa classe não pode ser herdada.

FixedBufferAttribute

Indica que um campo deve ser tratado como contendo um número fixo de elementos do tipo primitivo especificado. Essa classe não pode ser herdada.

FormattableStringFactory

Fornece um método estático para criar um FormattableString objeto a partir de uma cadeia de caracteres de formato composto e seus argumentos.

HasCopySemanticsAttribute

Essa classe está obsoleta. Essa classe não pode ser herdada.

IDispatchConstantAttribute

Indica que o valor padrão para o campo ou parâmetro atribuído é uma instância de DispatchWrapper, onde está WrappedObjectnull.

IndexerNameAttribute

Indica o nome pelo qual um indexador é conhecido em linguagens de programação que não dão suporte diretamente aos indexadores.

InternalsVisibleToAttribute

Especifica que os tipos normalmente visíveis somente dentro do assembly atual são visíveis para um assembly especificado.

IsBoxed

Indica que o tipo de referência modificado é um tipo de valor em caixa. Essa classe não pode ser herdada.

IsByRefLikeAttribute

Indica que uma estrutura é semelhante a byref.

IsByValue

Indica que um argumento de método modificado deve ser interpretado como tendo semântica de objeto passado por valor. Esse modificador é aplicado a tipos de referência. Essa classe não pode ser herdada.

IsConst

Indica que o tipo modificado tem um const modificador. Essa classe não pode ser herdada.

IsCopyConstructed

Indica que qualquer cópia de valores desse tipo deve usar o construtor de cópia fornecido pelo tipo. Essa classe não pode ser herdada.

IsExplicitlyDereferenced

Indica que um ponteiro gerenciado representa um parâmetro de ponteiro dentro de uma assinatura de método. Essa classe não pode ser herdada.

IsImplicitlyDereferenced

Indica que a referência de coleta de lixo modificada representa um parâmetro de referência dentro de uma assinatura de método. Essa classe não pode ser herdada.

IsJitIntrinsic

Indica que um método modificado é um valor intrínseco para o qual o compilador just-in-time (JIT) pode executar uma geração de código especial. Essa classe não pode ser herdada.

IsLong

Indica que um inteiro modificado é um valor C++ long padrão. Essa classe não pode ser herdada.

IsPinned

Indica que uma instância modificada está fixada na memória. Essa classe não pode ser herdada.

IsReadOnlyAttribute

Marca um elemento de programa como somente leitura.

IsSignUnspecifiedByte

Indica que um modificador não está assinado nem sem sinal. Essa classe não pode ser herdada.

IsUdtReturn

Indica que um tipo de retorno é um tipo definido pelo usuário. Essa classe não pode ser herdada.

IsVolatile

Marca um campo como volátil. Essa classe não pode ser herdada.

IteratorStateMachineAttribute

Indica se um método no Visual Basic está marcado com o Iterator modificador.

IUnknownConstantAttribute

Indica que o valor padrão para o campo ou parâmetro atribuído é uma instância de UnknownWrapper, onde está WrappedObjectnull. Essa classe não pode ser herdada.

MethodImplAttribute

Especifica os detalhes de como um método é implementado. Essa classe não pode ser herdada.

NativeCppClassAttribute

Aplica metadados a um assembly que indica que um tipo é um tipo não gerenciado. Essa classe não pode ser herdada.

ReadOnlyCollectionBuilder<T>

O construtor da coleção somente leitura.

ReferenceAssemblyAttribute

Identifica um assembly como um assembly de referência, que contém metadados, mas nenhum código executável.

RequiredAttributeAttribute

Especifica que um compilador de importação deve entender completamente a semântica de uma definição de tipo ou recusar-se a usá-la. Essa classe não pode ser herdada.

RuleCache<T>

Representa um cache de regras de associação de runtime.

RuntimeCompatibilityAttribute

Especifica se as exceções não derivam da classe Exception com um objeto RuntimeWrappedException. Essa classe não pode ser herdada.

RuntimeFeature

Define APIs para determinar se recursos específicos são compatíveis com o common language runtime.

RuntimeHelpers

Fornece um conjunto de métodos estáticos e propriedades que fornecem suporte para compiladores. Essa classe não pode ser herdada.

RuntimeOps

Contém métodos auxiliares chamados de métodos gerados dinamicamente.

RuntimeWrappedException

Encapsula uma exceção que não deriva da Exception classe. Essa classe não pode ser herdada.

ScopelessEnumAttribute

Indica que uma enumeração nativa não é qualificada pelo nome do tipo de enumeração. Essa classe não pode ser herdada.

SpecialNameAttribute

Indica que um tipo ou membro é tratado de forma especial pelo runtime ou pelas ferramentas. Essa classe não pode ser herdada.

StateMachineAttribute

Permite determinar se um método é um método de computador de estado.

StringFreezingAttribute

Preterido. Congela um literal de cadeia de caracteres ao criar imagens nativas usando o Ngen.exe (Gerador de Imagem Nativa). Essa classe não pode ser herdada.

StrongBox<T>

Mantém uma referência a um valor.

SuppressIldasmAttribute

Impede que o Ildasm.exe (IL Disassembler) desmonte um assembly. Essa classe não pode ser herdada.

SwitchExpressionException

Indica que uma expressão de comutador que não foi exaustiva falhou ao corresponder à sua entrada em runtime. Opcionalmente, a exceção contém um objeto que representa o valor incompatível.

TupleElementNamesAttribute

Indica que o uso de uma tupla de valor em um membro deve ser tratado como uma tupla com nomes de elemento.

TypeForwardedFromAttribute

Especifica um Type de origem em outro assembly.

TypeForwardedToAttribute

Especifica um Type de destino em outro assembly.

UnsafeValueTypeAttribute

Especifica que um tipo contém uma matriz não gerenciada que pode potencialmente estourar. Essa classe não pode ser herdada.

Estruturas

Nome Description
AsyncIteratorMethodBuilder

Representa um construtor para iteradores assíncronos.

AsyncTaskMethodBuilder

Representa um construtor para métodos assíncronos que retornam uma tarefa.

AsyncTaskMethodBuilder<TResult>

Representa um construtor para métodos assíncronos que retorna uma tarefa e fornece um parâmetro para o resultado.

AsyncValueTaskMethodBuilder

Representa um construtor para métodos assíncronos que retornam um ValueTask.

AsyncValueTaskMethodBuilder<TResult>

Representa um construtor para métodos assíncronos que retorna um ValueTask<TResult>.

AsyncVoidMethodBuilder

Representa um construtor para métodos assíncronos que não retornam um valor.

ConfiguredAsyncDisposable

Fornece um tipo que pode ser usado para configurar como as esperas em um IAsyncDisposable são executadas.

ConfiguredCancelableAsyncEnumerable<T>.Enumerator

Fornece um enumerador assíncrono aguardado que permite iteração cancelável e esperas configuradas.

ConfiguredCancelableAsyncEnumerable<T>

Fornece um enumerável assíncrono aguardado que permite iteração cancelável e esperas configuradas.

ConfiguredTaskAwaitable

Fornece um objeto aguardável que permite aguardas configurados em uma tarefa.

ConfiguredTaskAwaitable.ConfiguredTaskAwaiter

Fornece um aguardador para um objeto awaitable (ConfiguredTaskAwaitable).

ConfiguredTaskAwaitable<TResult>.ConfiguredTaskAwaiter

Fornece um aguardador para um objeto aguardável(ConfiguredTaskAwaitable<TResult>).

ConfiguredTaskAwaitable<TResult>

Fornece um objeto aguardável que permite aguardas configurados em uma tarefa.

ConfiguredValueTaskAwaitable

Fornece um tipo aguardado que permite aguardas configurados em um ValueTask.

ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter

Fornece um aguardador para um ConfiguredValueTaskAwaitable.

ConfiguredValueTaskAwaitable<TResult>.ConfiguredValueTaskAwaiter

Fornece um aguardador para um ConfiguredValueTaskAwaitable<TResult>.

ConfiguredValueTaskAwaitable<TResult>

Fornece um tipo aguardado que permite aguardas configurados em um ValueTask<TResult>.

TaskAwaiter

Fornece um objeto que aguarda a conclusão de uma tarefa assíncrona.

TaskAwaiter<TResult>

Representa um objeto que aguarda a conclusão de uma tarefa assíncrona e fornece um parâmetro para o resultado.

ValueTaskAwaiter

Fornece um aguardador para um ValueTask.

ValueTaskAwaiter<TResult>

Fornece um aguardador para um ValueTask<TResult>.

YieldAwaitable

Fornece o contexto de espera ao alternar assíncronamente para um ambiente de destino.

YieldAwaitable.YieldAwaiter

Fornece um aguardador para alternar para um ambiente de destino.

Interfaces

Nome Description
IAsyncStateMachine

Representa os computadores de estado gerados para métodos assíncronos. Esse tipo destina-se apenas ao uso do compilador.

ICriticalNotifyCompletion

Representa um aguardador que agenda continuações quando uma operação de espera é concluída.

INotifyCompletion

Representa uma operação que agenda continuações quando é concluída.

IRuntimeVariables

Representa os valores das variáveis de tempo de execução.

IStrongBox

Define uma propriedade para acessar o valor que um objeto faz referência.

ITuple

Define uma implementação de Tupla de uso geral que permite o acesso aos membros da instância de Tupla sem saber o tipo de Tupla subjacente.

Enumerações

Nome Description
CompilationRelaxations

Especifica parâmetros que controlam a rigidez do código gerado pelo compilador JIT (just-in-time) do Common Language Runtime.

LoadHint

Especifica a associação padrão preferencial para um assembly dependente.

MethodCodeType

Define como um método é implementado.

MethodImplOptions

Especifica constantes que definem os detalhes de como um método é implementado.

Delegados

Nome Description
ConditionalWeakTable<TKey,TValue>.CreateValueCallback

Representa um método que cria um valor não padrão a ser adicionado como parte de um par chave/valor a um ConditionalWeakTable<TKey,TValue> objeto.

RuntimeHelpers.CleanupCode

Representa um método a ser executado quando ocorre uma exceção.

RuntimeHelpers.TryCode

Representa um delegado para o código que deve ser executado em um bloco try.

Comentários

Esse namespace é principalmente para gravadores de compilador, embora várias de suas classes, como InternalsVisibleToAttribute, sejam usadas em uma ampla variedade de aplicativos.