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


<Элемент 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" />

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

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

Атрибуты

Атрибут Тип атрибута Description
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. Дополнительные сведения см. в разделе Параметры политики директив среды выполнения.

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

Нет.

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

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

Замечания

Элемент <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 во время выполнения.

См. также