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


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

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

Синтаксис

<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" />

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

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

Атрибуты

Атрибут Тип атрибута Описание
Name Общие сведения Обязательный атрибут. Имя типа параметра типа Type. Например, для сигнатуры метода Type.GetInterfaceMap(Type interfaceType), значение атрибута Name — "interfaceType".
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 - атрибут

Значение Описание
parameter_name Имя типа параметра типа Type. Например, для сигнатуры метода Type.GetInterfaceMap(Type interfaceType), значение атрибута Name — "interfaceType".

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

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

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

Отсутствует.

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

Элемент Описание
<Метод> Применяет политику отражения среды выполнения к конструктору или методу.

Комментарии

Элемент <TypeParameter> аналогичен элементу <Parameter> , за исключением того, что его можно применить только к параметрам типа Type. Применяет политику, независимо от представленного типа во время выполнения по аргументу типа, указанному атрибутом Name.

Например, сериализатор NewtonSoft JSON включает статический метод JsonConvert.DeserializeObject(String value, Type type). Следующие директивы отражения:

<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>

определяют, что метаданные для типа среды выполнения, представленные аргументом type, должны быть доступны для сериализации. Если применить эти директивы среды выполнения к проекту, который включает следующий исходный код:

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

директивы отражения делают метаданные для типа StockQuote доступными для сериализатора NewtonSoft JSON во время выполнения.

См. также раздел