Atributos direcionais

Autor: Lewis Jackson
Data De Criação: 8 Poderia 2021
Data De Atualização: 1 Julho 2024
Anonim
Image Annotation Tutorial - V7 AI Academy
Vídeo: Image Annotation Tutorial - V7 AI Academy

Contente

Definição - O que significam Atributos direcionais?

Atributos direcionais, em C #, são tags usados ​​para especificar parâmetros do método de objeto com informações relacionadas ao fluxo direcional de dados entre o chamador e o chamado.

Atributos direcionais controlam a empacotamento - onde um objeto é preparado para transferência através de um aplicativo ou processo - dos parâmetros de direção e retorno dos parâmetros do método. Atributos direcionais são aplicados para modificar a empacotamento do tempo de execução durante a comunicação do código gerenciado, que é executado pelo Common Language Runtime (CLR) e do código não gerenciado, que é executado fora do controle do CLR.


Uma introdução ao Microsoft Azure e Microsoft Cloud | Neste guia, você aprenderá sobre o que é a computação em nuvem e como o Microsoft Azure pode ajudá-lo a migrar e administrar seus negócios a partir da nuvem.

Techopedia explica atributos direcionais

InAttribute e OutAttribute são os dois atributos direcionais de C # usados ​​para mapear para os atributos de IDL (Interface Definition Language) dos modelos de objetos de componente (COM). InAttribute mapeia para e OutAttribute mapeia para. O valor de retorno da assinatura do método gerenciado é mapeado para em uma biblioteca de tipos. É essencial especificar o atributo direcional correto para os parâmetros do método, para que a biblioteca de tipos de exportação defina corretamente os bits de entrada / saída.

Ao aplicar InAttribute e OutAttribute em matrizes e tipos não-blittáveis ​​formatados (que não possuem representação de memória gerenciada e não gerenciada comum), o chamador vê alterações nos chamados. Atributos direcionais aplicados a esses tipos reduzem cópias desnecessárias durante o empacotamento.

Em C #, InAttribute e OutAttribute são usados ​​em três formulários com duas palavras-chave durante a comunicação de chamador e receptor, da seguinte maneira:


  • "fora" - implica
  • "ref" - implica,
  • (Nenhum especificado) - (por padrão)

As palavras-chave out e ref são usadas para tipos de valor e tipos de referência serializáveis. A palavra-chave ref implica que o parâmetro seja empacotado em ambas as direções e out implica transferência de dados chamados. Quando ref ou out não são usados, isso implica que os dados são transferidos para o chamado.

Por exemplo, um aplicativo cliente .NET é um valor de entrada para um método de componente COM, que calcula o resultado do valor de entrada e retorna o resultado ao cliente. Atributos direcionais podem ser aplicados aos parâmetros do método que atende à solicitação, indicando o tipo de empacotamento necessário para o valor de entrada e o resultado.

Atributos direcionais têm as seguintes características:

  • Opcional e aplicado aos parâmetros do método em tempo de design
  • Suportado apenas para interoperabilidade e chamada de plataforma COM
  • InAttribute não pode ser aplicado a um parâmetro com uma palavra-chave out

O empacotador de interoperabilidade CLR fornece serviço de empacotamento em tempo de execução, manipulando argumentos de chamada de método e retornando valores entre a memória gerenciada e a não gerenciada. Se os atributos direcionais não estiverem definidos, o empacotador determinará o fluxo direcional com base no tipo de parâmetro e no modificador (se houver). O empacotador opera da seguinte maneira:


  • Ele não substitui os dados passados ​​como um parâmetro "In" do código não gerenciado. Portanto, somente dados somente leitura, como dados acessados ​​simultaneamente, podem ser transmitidos.
  • Ao passar objetos - como cadeias básicas ou binárias (BSTR) - com alocação de memória estabelecida, a sequência adequada de alocação / desalocação é seguida de acordo com as configurações de Entrada / Saída.
Essa definição foi escrita no con do C #