XamlMember Класс

Определение

Предоставляет системный идентификатор типа языка XAML для членов типов XAML.Provides the XAML type system identifier for members of XAML types. Этот идентификатор используется средствами чтения и записи XAML во время обработки узлов членов (когда средство чтения XAML находится в поле StartMember). Кроме того, он используется для общей логики системы типов XAML.The identifier is used by XAML readers and XAML writers during processing of member nodes (when the XAML reader is positioned on a StartMember) and also for general XAML type system logic.

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 подклассами.XamlMember can use three methodologies for returning information about a XAML member: standard common language runtime (CLR) reflection; a reference-only reflection technique calling internal APIs that use optimized bit flags; or calling into virtual overrides of the Lookup* API that is provided by possible XamlMember subclasses. Для большинства случаев использования API-интерфейсов служб .NET Framework XamlMember XAML и API используется контекст схемы XAML по умолчанию.For most uses of .NET Framework XAML Services APIs and the XamlMember API, you use the default XAML schema context. Контекст схемы XAML по умолчанию для служб .NET Framework XAML использует резервное копирование CLR для системы типов.The default XAML schema context for .NET Framework XAML Services uses CLR backing for the type system. Это позволяет средствам чтения и записи XAML работать с любым типом или членом, который определен в среде CLR и ее методах отражения или иным образом доступен.This enables the XAML readers and XAML writers to work with any type or member that is defined in, or otherwise available to, the CLR and its reflection techniques.

API Lookup * и производные классы КсамлмемберLookup* APIs and XamlMember Derived Classes

XamlMemberопределяет несколько виртуальных членов, которые могут быть переопределены производными классами.XamlMember defines several virtual members that derived classes might override. Эти члены имеют имена, которые всегда начинаются со строки Lookup.These members have names that always start with the string Lookup. Оставшаяся часть имени API ссылается на свойство, которое влияет на виртуальный метод.The remainder of the API name then references the property that the virtual method influences. Например, XamlMember производный класс может переопределять LookupTargetType , чтобы влиять на то, что базовое свойство TargetType возвращает в производном классе.For example, a XamlMember derived class might override LookupTargetType to influence what the base-defined property TargetType returns in a derived class. Вы можете предсказать возвращаемые значения для таких свойств XamlMember в или существующих производных классах, прочитав документацию по соответствующим Lookup* методам.You can predict return values for such properties in XamlMember or existing derived classes by reading the documentation for the relevant Lookup* methods.

Назначение Lookup* методов заключается в том, чтобы предоставить метод расширения системы типов XAML, включающий XamlMember базовый класс.The purpose of the Lookup* methods is to provide a XAML type system extension technique that incorporates the XamlMember base class. При наследовании от XamlMember и Lookup переопределении виртуальных членов можно определить концепцию элемента XAML для схемы XAML в системе типов XAML без привязки к конкретным системам резервного типа или технологии.By deriving from XamlMember and overriding the Lookup virtual members, you can define the concept of a XAML member for a XAML schema in a XAML type system without being tied to the specifics of a backing type system or technology. Можно также использовать предоставленный контекст схемы XAML в этой схеме и по-прежнему возвращать нужные результаты.You can also use a provided XAML schema context under this scheme and still return the results you want.

В качестве примера рассмотрим XamlMember свойство. IsWritePublicAs an example, consider the XamlMember property IsWritePublic. Это свойство информирует вызывающие объекты о том, что операции, такие XamlWriter как использование для сериализации, могут записывать значение для этого элемента в целевом объекте.This property informs callers that operations such as using a XamlWriter for serialization can write a value for this member on a target object. В реализации по умолчанию определение, является ли член доступным для записи, с помощью методик отражения для резервной среды CLR Type и ее членов MemberInfo().In the default implementation, the determination of whether the member is writable is made by using reflection techniques against the backing CLR Type and its members (the MemberInfo). Таким образом, по умолчанию система типов XAML зависит от системы типов CLR.Therefore, by default, the XAML type system depends on the CLR type system. Однако эту зависимость можно удалить для отчетов IsWritePublic системы типов XAML, переопределив API. LookupIsWritePublicHowever, you can remove this dependency for your XAML type system reporting of IsWritePublic by overriding the API LookupIsWritePublic. В рамках переопределения можно использовать другие определения, например метаданные, характерные для вашей технологии, главную таблицу уточняющих запросов, оптимизированную для фиксированного словаря XAML, или разнообразные другие стратегии определения того, доступен ли член XAML для записи в Словарь XAML.Within your override, you can use other determinations, such as metadata that is specific to your technology, a master lookup table that is optimized for a fixed XAML vocabulary, or a variety of other strategies for determining whether a XAML member is writable in your XAML vocabulary.

Создание Ксамлмембер без контекста схемы XAMLConstructing XamlMember Without XAML Schema Context

Для XamlMember большинства конструкторов XamlSchemaContext требуется как часть их инициализации.Most constructors of XamlMember require a XamlSchemaContext as part of their initialization. Компонент также необходим для многих внутренних XamlSchemaContext операций, например для получения сведений, пересылаемых из резервного типа. XamlSchemaContextThe XamlSchemaContext is also necessary for many internal XamlSchemaContext operations, such as obtaining information that is being forwarded from the backing type. При работе с XamlMember API обычно имеется объект XamlSchemaContext , доступный из XamlWriterокружающей конструкции, такой как.When you are working with the XamlMember API, you typically have a XamlSchemaContext that is available from a surrounding construct such as a XamlWriter. В этом случае можно передать XamlSchemaContext ссылку на все системные вызовы типов XAML, для которых требуется контекст схемы XAML.In this case, you can pass the XamlSchemaContext reference through to all XAML type system calls that require a XAML schema context.

XamlMember(String, XamlType, Boolean) ДляXamlSchemaContextодного конкретного конструктора,, не требуется.One specific constructor, XamlMember(String, XamlType, Boolean), does not require a XamlSchemaContext. Однако, XamlMember(String, XamlType, Boolean) true который создается с сигнатурой, возвращает для IsUnknown. XamlMemberHowever, a XamlMember that is constructed with the XamlMember(String, XamlType, Boolean) signature returns true for IsUnknown.

Для пути загрузки, включающего XamlObjectWriterв себя, такой элемент не может быть записан в граф объектов.For a load path that involves XamlObjectWriter, such a member cannot be written into an object graph. Используя .NET Framework реализацию служб XAML, XamlObjectWriter.WriteStartMember вызов создает исключение, XamlObjectWriterException когда соответствующие XamlMember отчеты true для IsUnknown.Using the .NET Framework XAML services implementation, the XamlObjectWriter.WriteStartMember call throws a XamlObjectWriterException when the relevant XamlMember reports true for IsUnknown.

XamlMember Не следует создавать объект, имеющий true значение для IsUnknown , если только ваша реализация не может выполнять обработку исключений XamlObjectWriterиз или у вас есть другие способы настройки XamlObjectWriter поведения.You should not construct a XamlMember that has a value of true for IsUnknown unless your implementation can handle the exceptions from XamlObjectWriter, or you have other ways to adjust the XamlObjectWriter behavior. Например, для реализации может потребоваться одно или несколько из следующих условий:For example, one or more of the following might be true of your implementation:

  • Контекст схемы XAML доступен позже.The XAML schema context is available later.

  • Используется шаблон вызова члена.You use a member invoker pattern.

  • Намеренно переопределяется XamlObjectWriter.WriteStartMember в пользовательском модуле записи XAML.You deliberately override XamlObjectWriter.WriteStartMember in a custom XAML writer.

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

XamlMember(EventInfo, XamlSchemaContext)

Инициализирует новый экземпляр класса XamlMember объектами EventInfo и XamlSchemaContext системы типов среды CLR.Initializes a new instance of the XamlMember class using CLR type system EventInfo and a XamlSchemaContext.

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр класса XamlMember объектами EventInfo и XamlSchemaContext системы типов среды CLR, включая сведения объекта XamlMemberInvoker.Initializes a new instance of the XamlMember class using CLR type system EventInfo and a XamlSchemaContext, including XamlMemberInvoker information.

XamlMember(PropertyInfo, XamlSchemaContext)

Инициализирует новый экземпляр класса XamlMember объектами PropertyInfo и XamlSchemaContext системы типов среды CLR.Initializes a new instance of the XamlMember class using CLR type system PropertyInfo and a XamlSchemaContext.

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр класса XamlMember объектами PropertyInfo и XamlSchemaContext отражения, включая сведения объекта XamlMemberInvoker.Initializes a new instance of the XamlMember class using reflection PropertyInfo and a XamlSchemaContext, including XamlMemberInvoker information.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

Инициализирует новый экземпляр класса XamlMember для объекта XamlMember, представляющего присоединяемое свойство.Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable property.

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

Инициализирует новый экземпляр класса XamlMember для объекта XamlMember, представляющего присоединяемое свойство, включая сведения объекта XamlMemberInvoker.Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable property, including XamlMemberInvoker information.

XamlMember(String, MethodInfo, XamlSchemaContext)

Инициализирует новый экземпляр класса XamlMember для объекта XamlMember, представляющего присоединяемое событие.Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable event.

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Инициализирует новый экземпляр класса XamlMember для объекта XamlMember, представляющего присоединяемое событие, включая сведения объекта XamlMemberInvoker.Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable event, including XamlMemberInvoker information.

XamlMember(String, XamlType, Boolean)

Инициализирует новый экземпляр класса XamlMember, используя строковое имя и сведения об объявляющем типе XamlType.Initializes a new instance of the XamlMember class using a string name and declaring XamlType information. Объект XamlMember, созданный с данной сигнатурой, имеет значительные ограничения.A XamlMember that is constructed with this signature has significant limitations.

Свойства

DeclaringType

Получает объект XamlType для типа, который объявляет член, связанный с этим объектом XamlMember.Gets the XamlType for the type that declares the member that is associated with this XamlMember.

DeferringLoader

Получает объект XamlValueConverter<TConverterBase>, используемый для отложенной загрузки объектов, объявленных в языке XAML.Gets a XamlValueConverter<TConverterBase> object, which is used for deferred loading of XAML declared objects.

DependsOn

Получает список объектов XamlMember.Gets a list of XamlMember objects. Эти объекты сообщают о членах, в которых существуют отношения зависимости для порядка инициализации относительно данного объекта XamlMember.These report the members where dependency relationships for initialization order exist relative to this XamlMember.

Invoker

Получает реализацию объекта XamlMemberInvoker, связанную с данным типом XamlMember.Gets the XamlMemberInvoker implementation that is associated with this XamlMember.

IsAmbient

Получает значение, указывающее, представляет ли этот объект XamlMember внешнее свойство.Gets a value that indicates whether this XamlMember is reported as an ambient property.

IsAttachable

Получает значение, указывающее, является ли этот объект XamlMember присоединяемым членом.Gets a value that indicates whether this XamlMember is an attachable member.

IsDirective

Получает значение, указывающее, является ли этот объект XamlMember директивой XAML.Gets a value that indicates whether this XamlMember is a XAML directive.

IsEvent

Получает значение, указывающее, действительно ли этот объект XamlMember представляет член события.Gets a value that indicates whether this XamlMember represents an event member.

IsNameValid

Получает значение, указывающее, инициализирован ли этот объект XamlMember допустимой строкой xamlName в качестве значения его свойства Name.Gets a value that indicates whether this XamlMember is initialized with a valid xamlName string as its Name.

IsReadOnly

Получает значение, указывающее, действительно ли этот объект XamlMember представляет член, доступный только для чтения.Gets a value that indicates whether this XamlMember represents a read-only member.

IsReadPublic

Получает значение, указывающее, представляет ли объект XamlMember член с доступным для вызова открытым методом доступа get.Gets a value that indicates whether this XamlMember represents a member with a callable public get accessor.

IsUnknown

Получает значение, указывающее, является ли этот член неразрешимым в базовой системе, используемой для разрешения типов и членов.Gets a value that indicates whether the member is not resolvable by the backing system that is used for type and member resolution.

IsWriteOnly

Получает значение, указывающее, действительно ли этот объект XamlMember представляет член, доступный только для записи.Gets a value that indicates whether this XamlMember represents a write-only member.

IsWritePublic

Получает значение, указывающее, представляет ли объект XamlMember член с доступным для вызова открытым методом доступа set.Gets a value that indicates whether this XamlMember represents a member that has a callable public set accessor.

MarkupExtensionBracketCharacters

Определяет символы открывающей и закрывающей скобок для расширения разметки.Defines the opening and closing bracket characters for a markup extension.

Name

Получает строковое представление имени xamlName, объявляющего этот объект XamlMember.Gets the xamlName name string that declares this XamlMember.

PreferredXamlNamespace

Получает URI одного пространства имен XAML, определяющий первичное пространство имен XAML для этого объекта XamlMember.Gets the single XAML namespace URI that identifies the primary XAML namespace for this XamlMember.

SerializationVisibility

Получает значение DesignerSerializationVisibility, указывающее, как визуальный конструктор должен обрабатывать этот член.Gets a DesignerSerializationVisibility value, which indicates how a visual designer should process the member.

TargetType

Получает объект XamlType того типа, в котором может существовать объект XamlMember.Gets the XamlType of the type where the XamlMember can exist.

Type

Получает объект XamlType того типа, который используется данным членом.Gets the XamlType of the type that is used by the member.

TypeConverter

Получает объект XamlValueConverter<TConverterBase>, который может использоваться для создания конструкции преобразователя типов для объектов, объявленных в языке XAML.Gets a XamlValueConverter<TConverterBase> object, which can be used for type conversion construction of XAML declared objects.

UnderlyingMember

Получает объект MemberInfo системы типов среды CLR, доступный для члена, который создан объектом PropertyInfo, MethodInfo или EventInfo.Gets the CLR type system MemberInfo that is available for a member that is constructed by PropertyInfo, MethodInfo, or EventInfo.

ValueSerializer

Получает объект XamlValueConverter<TConverterBase>, используемый для сериализации значений объектов, объявленных в языке XAML.Gets a XamlValueConverter<TConverterBase> object, which is used for value serialization of XAML declared objects.

Методы

Equals(Object)

Позволяет определить, равен ли текущий объект другому объекту.Indicates whether the current object is equal to another object.

Equals(XamlMember)

Указывает, равен ли текущий объект другому объекту того же типа.Indicates whether the current object is equal to another object of the same type.

GetHashCode()

Возвращает хэш-код для этого объекта.Returns the hash code for this object.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

Возвращает список пространств имен XAML, в которых может существовать этот член XAML.Returns a list of XAML namespaces where this XAML member can exist.

LookupCustomAttributeProvider()

При реализации в производном классе возвращает реализацию класса ICustomAttributeProvider.When implemented in a derived class, returns an ICustomAttributeProvider implementation.

LookupDeferringLoader()

Возвращает объект XamlValueConverter<TConverterBase>, используемый для отложенной загрузки объектов, объявленных в XAML.Returns a XamlValueConverter<TConverterBase> object, which is used for deferred loading of XAML declared objects.

LookupDependsOn()

Возвращает список объектов XamlMember.Returns a list of XamlMember objects. Элементы списка сообщают о членах, в которых существуют отношения зависимости для порядка инициализации относительно данного объекта XamlMember.Items in the list report the members where dependency relationships for initialization order exist relative to this XamlMember.

LookupInvoker()

Возвращает объект XamlMemberInvoker, связанный с данным типом XamlMember.Returns a XamlMemberInvoker that is associated with this XamlMember.

LookupIsAmbient()

Возвращает значение, указывающее, рассматривается ли данный объект XamlMember как внешнее свойство.Returns whether this XamlMember is reported as an ambient property.

LookupIsEvent()

Возвращает значение, указывающее, представляет ли данный объект XamlMember событие.Returns whether this XamlMember represents an event.

LookupIsReadOnly()

Возвращает значение, указывающее, представляет ли объект XamlMember требуемое свойство только для чтения.Returns whether this XamlMember represents an intended read-only property.

LookupIsReadPublic()

Возвращает значение, указывающее, представляет ли объект XamlMember свойство, имеющее открытый метод доступа get.Returns whether this XamlMember represents a property that has a public get accessor.

LookupIsUnknown()

Возвращает значение, указывающее, представляет ли данный объект XamlMember член, который не может быть разрешен в базовой системе, используемой для разрешения типов и членов.Returns whether this XamlMember represents a member that is not resolvable by the backing system that is used for type and member resolution.

LookupIsWriteOnly()

Возвращает значение, указывающее, действительно ли этот объект XamlMember представляет член, имеющий открытый метод доступа set, но не имеющий открытого метода доступа get.Returns whether this XamlMember represents a member that has a public set accessor but not a public get accessor.

LookupIsWritePublic()

Возвращает значение, указывающее, действительно ли этот объект XamlMember представляет член, имеющий открытый метод доступа set.Returns whether this XamlMember represents a member that has a public set accessor.

LookupMarkupExtensionBracketCharacters()

Возвращает символы открывающей и закрывающей скобок для расширения разметки.Returns the opening and closing bracket characters for a markup extension.

LookupTargetType()

Возвращает объект XamlType того типа, в котором может существовать объект XamlMember.Returns the XamlType of the type where the XamlMember can exist.

LookupType()

Возвращает объект XamlType того типа, который используется данным членом.Returns the XamlType of the type that is used by the member.

LookupTypeConverter()

Возвращает реализацию преобразователя типов, связанного с данным объектом XamlMember.Returns a type converter implementation that is associated with this XamlMember.

LookupUnderlyingGetter()

Возвращает метод доступа get, связанный с данным объектом XamlMember.Returns a get accessor that is associated with this XamlMember.

LookupUnderlyingMember()

Возвращает объект MemberInfo системы типов среды CLR, связанный с данным объектом XamlMember.Returns a CLR type system MemberInfo that is associated with this XamlMember.

LookupUnderlyingSetter()

Возвращает метод доступа set, связанный с данным объектом XamlMember.Returns a set accessor that is associated with this XamlMember.

LookupValueSerializer()

Возвращает реализацию сериализатора значений, связанную с данным объектом XamlMember.Returns a value serializer implementation that is associated with this XamlMember.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает строковое представление данного объекта XamlMember.Returns a string representation of this XamlMember.

Операторы

Equality(XamlMember, XamlMember)

Определяет, совпадают ли значения двух указанных объектов XamlMember.Determines whether two specified XamlMember objects have the same value.

Inequality(XamlMember, XamlMember)

Определяет, различаются ли значения двух указанных объектов XamlMember.Determines whether two specified XamlMember objects have different values.

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

Дополнительно