Поделиться через


<Элемент GenericParameter> (.NET Native)

Применяет политику к параметру типа универсального типа или метода.

Синтаксис

<GenericParameter Name="generic_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" />

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Тип атрибута Description
Name Общие Обязательный атрибут элемента . Имя универсального параметра. Например, для универсального делегата Func<T1,T2,TResult>, значение атрибута Name равно «TResult» для применения политики среды выполнения к возвращаемому значению делегата.
Activate Отражение Необязательный атрибут элемента . Управляет доступом среды выполнения к конструкторам для включения активации экземпляров.
Browse Отражение Необязательный атрибут элемента . Управляет запросами для получения сведений об элементах программы, но не включает доступ среды выполнения.
Dynamic Отражение Необязательный атрибут элемента . Управляет доступом среды выполнения ко всем членам типа, включая конструкторы, методы, поля, свойства и события, чтобы включить динамическое программирование.
Serialize Сериализация Необязательный атрибут элемента . Управляет доступом среды выполнения к конструкторам, полям и свойствам, позволяющим сериализовать и десериализовать экземпляры типа с помощью таких библиотек, как, например, сериализатор Newtonsoft JSON.
DataContractSerializer Сериализация Необязательный атрибут элемента . Определяет политику для сериализации, в которой используется класс System.Runtime.Serialization.DataContractSerializer.
DataContractJsonSerializer Сериализация Необязательный атрибут элемента . Определяет политику для сериализации JSON, в которой используется класс System.Runtime.Serialization.Json.DataContractJsonSerializer.
XmlSerializer Сериализация Необязательный атрибут элемента . Определяет политику для сериализации XML, в которой используется класс System.Xml.Serialization.XmlSerializer.
MarshalObject Interop Необязательный атрибут элемента . Определяет политику для маршалинга ссылочных типов в среды выполнения Windows и COM.
MarshalDelegate Interop Необязательный атрибут элемента . Определяет политики для маршалинга типов делегатов как указателей функции на машинный код.
MarshalStructure Interop Необязательный атрибут элемента . Определяет политики для маршалинга типов значений в машинный код.

Name - атрибут

значение Описание
generic_parameter_name Обязательный атрибут элемента . Имя универсального параметра типа. Например, для универсального делегата Func<T1,T2,TResult> значение generic_parameter_name, равное "TResult", применяет политику среды выполнения к возвращаемому значению делегата.

Все остальные атрибуты

значение Описание
policy_setting Параметр, применяемый для этого типа политики. Допустимые значения: All, Public, PublicAndInternal, Required Public, Required PublicAndInternal и Required All. Дополнительные сведения см. в разделе Параметры политики директив среды выполнения.

Дочерние элементы

Нет.

Родительские элементы

Элемент Description
<Method> Применяет политику отражения среды выполнения к конструктору или методу.
<Тип> Применяет политику отражения среды выполнения для конкретного типа, например, класса или структуры.

Замечания

Элемент <GenericParameter> является дочерним элементом< элемента Method> или <Type> и используется для применения политики к определенному параметру универсального типа, который указывается его именем в сигнатуре универсального типа или метода.

Элемент <GenericParameter> особенно полезен при использовании сериализаторов. В следующем примере элемент используется <GenericParameter> для применения политики к типу T вызовов перегрузок метода JsonConvert.DeserializeObject<T>(String) сериализатора NewtonSoft.

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

См. также