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