Compartilhar via


<Elemento TypeParameter (.NET Native)>

Aplica a política ao tipo representado por um argumento Type passado para um método.

Syntax

<Parameter Name="parameter_name"
           Activate="policy_type"
           Browse="policy_type"
           Dynamic="policy_type"
           Serialize="policy_type"
           DataContractSerializer="policy_type"
           DataContractJsonSerializer="policy_type"
           XmlSerializer="policy_type"
           MarshalObject="policy_type"
           MarshalDelegate="policy_type"
           MarshalStructure="policy_type" />

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Tipo de atributo Descrição
Name Geral Atributo obrigatório. O nome do parâmetro do tipo Type. Por exemplo, para a assinatura do método Type.GetInterfaceMap(Type interfaceType), o valor do atributo Name é "interfaceType".
Activate Reflexão Atributo opcional . Controla o acesso de runtime a construtores para habilitar a ativação de instâncias.
Browse Reflexão Atributo opcional . Controla a consulta para obter informações sobre elementos do programa, mas não permite qualquer acesso de runtime.
Dynamic Reflexão Atributo opcional . Controla o acesso a todos os tipos de membro ao runtime, incluindo construtores, métodos, campos, propriedades e eventos, habilitando a programação dinâmica.
Serialize Serialização Atributo opcional . Controla o acesso ao runtime para construtores, campos e propriedades para habilitar a serialização e desserialização das instâncias por bibliotecas como o serializador Newtonsoft JSON.
DataContractSerializer Serialização Atributo opcional . Controla a política de serialização que usa a classe System.Runtime.Serialization.DataContractSerializer.
DataContractJsonSerializer Serialização Atributo opcional . Controla a política de serialização JSON que usa a classe System.Runtime.Serialization.Json.DataContractJsonSerializer.
XmlSerializer Serialização Atributo opcional . Controla a política de serialização XML que usa a classe System.Xml.Serialization.XmlSerializer.
MarshalObject Interoperabilidade Atributo opcional . Política de controles de marshaling de tipos de referência para o Windows Runtime e COM.
MarshalDelegate Interoperabilidade Atributo opcional . Controla a diretiva de marshaling de tipos delegados como ponteiros de função para código nativo.
MarshalStructure Interoperabilidade Atributo opcional . Controla a política de marshaling de tipos de valor para código nativo.

Atributo de nome

Valor Descrição
parameter_name O nome do parâmetro do tipo Type. Por exemplo, para a assinatura do método Type.GetInterfaceMap(Type interfaceType), o valor do atributo Name é "interfaceType".

Todos os outros atributos

Valor Descrição
policy_setting A configuração a ser aplicada a este tipo de política. Os valores possíveis são All, Public, PublicAndInternal, Required Public, Required PublicAndInternal e Required All. Para obter mais informações, consulte Configurações da política da diretiva de runtime.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<Método> Aplica a política de reflexão de runtime a um construtor ou método.

Comentários

O <TypeParameter> elemento é semelhante ao <elemento Parameter> , exceto que ele pode ser aplicado somente a parâmetros do tipo Type. Ele aplica a política a qualquer tipo que é representado no tempo de execução pelo argumento do tipo especificado pelo atributo Name.

Por exemplo, o serializador NewtonSoft JSON inclui um método JsonConvert.DeserializeObject(String value, Type type) estático. As seguintes diretivas de reflexão:

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
   <Type Name="Newtonsoft.Json.JsonConvert" >
      <Method Name="DeserializeObject">
         <GenericParameter Name="type" Serialize="Required All" />
      </Method>
   </Type>
</Directives>

especificam que os metadados para o tipo de runtime representado pelo argumento type deve ser disponibilizado para serialização. Se essas diretivas de runtime para um projeto que inclui o seguinte código-fonte:

Type t = typeof(StockQuote);
Object obj = JsonConvert.DeserializeObject(data, t);

as diretivas de reflexão disponibilizam os metadados para o tipo StockQuote disponível para o serializador NewtonSoft JSON no tempo de execução.

Confira também