XamlMember Класс

Определение

Предоставляет системный идентификатор типа XAML для членов типов XAML. Идентификатор используется средствами чтения XAML и средствами записи XAML во время обработки узлов-членов (когда средство чтения XAML размещается в a StartMember) и для общей логики системы типов XAML.

public ref class XamlMember : IEquatable<System::Xaml::XamlMember ^>
public class XamlMember : IEquatable<System.Xaml.XamlMember>
type XamlMember = class
    interface IEquatable<XamlMember>
Public Class XamlMember
Implements IEquatable(Of XamlMember)
Наследование
XamlMember
Производный
Реализации

Комментарии

XamlMember может использовать три методологии для возврата сведений о члене XAML: стандартное отражение среды CLR; Метод отражения только для ссылок, вызывающий внутренние API, использующие оптимизированные битовые флаги; или вызов виртуальных переопределения Lookup* API, предоставляемых возможными XamlMember подклассами. Для большинства использования API служб XAML .NET Framework и XamlMember API используется контекст схемы XAML по умолчанию. Контекст схемы XAML по умолчанию для служб XAML .NET Framework использует резервную копию CLR для системы типов. Это позволяет средствам чтения XAML и записи XAML работать с любым типом или членом, определенным в или иным образом доступным для среды CLR, и ее методов отражения.

Api-интерфейсы Lookup* и производные классы XamlMember

XamlMember определяет несколько виртуальных членов, которые производные классы могут переопределить. Эти члены имеют имена, которые всегда начинаются со строки Lookup. Оставшаяся часть имени API ссылается на свойство, которое влияет на виртуальный метод. Например, производный XamlMember класс может переопределить LookupTargetType , чтобы повлиять на то, что базовое свойство TargetType возвращается в производном классе. Вы можете прогнозировать возвращаемые значения для таких свойств в XamlMember или существующих производных классах, прочитав документацию для соответствующих Lookup* методов.

Цель Lookup* методов — предоставить метод расширения системы типа XAML, который включает базовый XamlMember класс. Наследуя и переопределяя XamlMemberLookup виртуальные члены, можно определить концепцию элемента XAML для схемы XAML в системе типов XAML без привязки к конкретным элементам системы или технологии резервного типа. Вы также можете использовать предоставленный контекст схемы XAML в этой схеме и по-прежнему возвращать нужные результаты.

В качестве примера рассмотрим XamlMember свойство IsWritePublic. Это свойство сообщает вызывающим объектам, что такие операции, как использование XamlWriter сериализации, могут записывать значение для этого элемента в целевом объекте. В реализации по умолчанию определение того, является ли элемент доступным для записи, используя методы отражения для резервной среды CLR Type и ее членов (the MemberInfo). Поэтому по умолчанию система типов XAML зависит от системы типов СРЕДЫ CLR. Однако эту зависимость можно удалить для системных отчетов IsWritePublic типа XAML, переопределив API LookupIsWritePublic. В переопределении можно использовать другие определения, такие как метаданные, относящиеся к вашей технологии, основная таблица подстановки, оптимизированная для фиксированного словаря XAML, или различные другие стратегии для определения того, является ли элемент XAML записываемым в словаре XAML.

Создание XamlMember без контекста схемы XAML

Большинству конструкторов XamlMember требуется в XamlSchemaContext рамках их инициализации. Это XamlSchemaContext также необходимо для многих внутренних XamlSchemaContext операций, таких как получение информации, пересылаемой из резервного типа. При работе с XamlMember API обычно имеется XamlSchemaContext доступ из окружающего конструктора, XamlWriterнапример. В этом случае можно передать ссылку XamlSchemaContext на все системные вызовы типа XAML, для которых требуется контекст схемы XAML.

Для одного конкретного конструктора XamlMember(String, XamlType, Boolean), не требуется XamlSchemaContext. Однако объект, созданный с помощью сигнатурыXamlMember, XamlMember(String, XamlType, Boolean) возвращается true для IsUnknown.

Для пути загрузки, который включает в себя XamlObjectWriter, такой элемент не может быть записан в граф объектов. Используя реализацию служб XAML .NET Framework, XamlObjectWriter.WriteStartMember вызов вызывает исключение XamlObjectWriterException , когда соответствующие XamlMember отчеты true для IsUnknown.

Вы не должны создавать XamlMember значение, которое имеет значение true , IsUnknown если реализация не может обрабатывать исключения из XamlObjectWriterили у вас есть другие способы настройки XamlObjectWriter поведения. Например, одно или несколько из следующих вариантов могут иметь значение true для реализации:

  • Контекст схемы XAML доступен позже.
  • Используется шаблон вызывающего элемента.
  • Вы намеренно переопределяете XamlObjectWriter.WriteStartMember в пользовательском средстве записи XAML.

Конструкторы

Имя Описание
XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр XamlMember класса с помощью системы EventInfo типов CLR и XamlSchemaContextинформации.XamlMemberInvoker

XamlMember(EventInfo, XamlSchemaContext)

Инициализирует новый экземпляр XamlMember класса с помощью системы EventInfo типов CLR и a XamlSchemaContext.

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр XamlMember класса с помощью отражения PropertyInfo и XamlSchemaContextинформации.XamlMemberInvoker

XamlMember(PropertyInfo, XamlSchemaContext)

Инициализирует новый экземпляр XamlMember класса с помощью системы PropertyInfo типов CLR и a XamlSchemaContext.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр XamlMember класса для XamlMember объекта, представляющего присоединенное свойство, включая XamlMemberInvoker сведения.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

Инициализирует новый экземпляр XamlMember класса для XamlMember объекта, представляющего присоединенное свойство.

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр XamlMember класса для объекта XamlMember , представляющего присоединенное событие, включая XamlMemberInvoker сведения.

XamlMember(String, MethodInfo, XamlSchemaContext)

Инициализирует новый экземпляр XamlMember класса для объекта XamlMember , представляющего присоединенное событие.

XamlMember(String, XamlType, Boolean)

Инициализирует новый экземпляр XamlMember класса с помощью строкового имени и объявления XamlType сведений. Объект, XamlMember созданный с помощью этой подписи, имеет значительные ограничения.

Свойства

Имя Описание
DeclaringType

XamlType Возвращает тип, объявляющий элемент, связанный с этимXamlMember.

DeferringLoader

Возвращает объект, используемый XamlValueConverter<TConverterBase> для отложенной загрузки объявленных объектов XAML.

DependsOn

Возвращает список XamlMember объектов. Они сообщают членам, в которых существуют связи зависимостей для порядка инициализации относительно этого XamlMember.

Invoker

Возвращает реализацию XamlMemberInvoker , связанную с этим XamlMember.

IsAmbient

Возвращает значение, указывающее, сообщается ли это XamlMember как внешнее свойство.

IsAttachable

Возвращает значение, указывающее, является ли этот XamlMember элемент присоединенным.

IsDirective

Возвращает значение, указывающее, является ли это XamlMember директивой XAML.

IsEvent

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

IsNameValid

Возвращает значение, указывающее, инициализирована ли эта XamlMember строка в качестве xamlNameдопустимой Name строки.

IsReadOnly

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

IsReadPublic

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

IsUnknown

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

IsWriteOnly

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

IsWritePublic

Возвращает значение, указывающее, представляет ли этот XamlMember элемент, имеющий вызываемый общедоступный set доступ.

MarkupExtensionBracketCharacters

Определяет символы открывающей и закрывающей скобки для расширения разметки.

Name

xamlName Возвращает строку имени, объявляющую этоXamlMember.

PreferredXamlNamespace

Возвращает один универсальный код ресурса (URI) пространства имен XAML, определяющий основное пространство имен XAML для этого XamlMember.

SerializationVisibility

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

TargetType

XamlType Возвращает тип, в котором XamlMember может существовать.

Type

XamlType Возвращает тип, используемый элементом.

TypeConverter

XamlValueConverter<TConverterBase> Возвращает объект, который можно использовать для преобразования типов объявленных объектов XAML.

UnderlyingMember

Возвращает систему MemberInfo типов СРЕДЫ CLR, доступную для элемента, созданного с помощью PropertyInfo, MethodInfoили EventInfo.

ValueSerializer

Возвращает объект, используемый XamlValueConverter<TConverterBase> для сериализации значений объявленных объектов XAML.

Методы

Имя Описание
Equals(Object)

Указывает, равен ли текущий объект другому объекту.

Equals(XamlMember)

Указывает, равен ли текущий объект другому объекту того же типа.

GetHashCode()

Возвращает хэш-код для этого объекта.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetXamlNamespaces()

Возвращает список пространств имен XAML, в которых может существовать этот член XAML.

LookupCustomAttributeProvider()

При реализации в производном классе возвращает реализацию ICustomAttributeProvider .

LookupDeferringLoader()

XamlValueConverter<TConverterBase> Возвращает объект, который используется для отложенной загрузки объявленных объектов XAML.

LookupDependsOn()

Возвращает список XamlMember объектов. Элементы в списке сообщают членам, в которых существуют связи зависимостей для порядка инициализации относительно этого XamlMember.

LookupInvoker()

Возвращает объект, связанный XamlMemberInvoker с этим XamlMember.

LookupIsAmbient()

Возвращает значение, указывающее, сообщается ли это XamlMember как внешнее свойство.

LookupIsEvent()

Возвращает значение, представляющее XamlMember событие.

LookupIsReadOnly()

Возвращает значение XamlMember , представляющее собой предполагаемое свойство только для чтения.

LookupIsReadPublic()

Возвращает значение XamlMember , представляющее свойство с общедоступным get доступом.

LookupIsUnknown()

Возвращает значение XamlMember , представляющее элемент, который не разрешается серверной системой, используемой для разрешения типов и членов.

LookupIsWriteOnly()

Возвращает значение XamlMember , представляющее элемент, имеющий общедоступный set метод доступа, но не открытый get доступ.

LookupIsWritePublic()

Возвращает значение, XamlMember представляющее элемент с общедоступным set доступом.

LookupMarkupExtensionBracketCharacters()

Возвращает символы открывающей и закрывающей скобки для расширения разметки.

LookupTargetType()

XamlType Возвращает тип, в котором XamlMember может существовать.

LookupType()

XamlType Возвращает тип, используемый элементом.

LookupTypeConverter()

Возвращает реализацию преобразователя типов, связанную с этим XamlMember.

LookupUnderlyingGetter()

Возвращает метод доступа, связанный get с этим XamlMember.

LookupUnderlyingMember()

Возвращает систему MemberInfo типов СРЕДЫ CLR, связанную с этим XamlMember.

LookupUnderlyingSetter()

Возвращает метод доступа, связанный set с этим XamlMember.

LookupValueSerializer()

Возвращает реализацию сериализатора значений, связанную с этим XamlMember.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строковое представление этого XamlMemberобъекта.

Операторы

Имя Описание
Equality(XamlMember, XamlMember)

Определяет, имеют ли два указанных XamlMember объекта одинаковые значения.

Inequality(XamlMember, XamlMember)

Определяет, имеют ли два указанных XamlMember объекта разные значения.

Применяется к

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