MemberRelationshipService Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовый класс для связи одного члена с другим.
public ref class MemberRelationshipService abstract
public abstract class MemberRelationshipService
type MemberRelationshipService = class
Public MustInherit Class MemberRelationshipService
- Наследование
-
MemberRelationshipService
Примеры
Упрощение MemberRelationshipService извлечения значения свойства из другого расположения. Конструктор может получить доступ к этой службе, чтобы диктовать, что одному члену присваивается значение другого. Генератор кода ищет такие связи при создании кода, и если связь между двумя элементами найдена генератором кода, он выдает код для связи, а не ищет значение свойства. Используя предыдущее назначение текста в качестве примера, в следующем примере кода показан код времени разработки, используемый для установления связи.
object titleLabel, form;
PropertyDescriptor titleLabelText = TypeDescriptor.GetProperties(titleLabel)["Text"];
PropertyDescriptor formText = TypeDescriptor.GetProperties(form)["Text"];
MemberRelationshipService ms = GetService(typeof(MemberRelationshipService);
ms[titleLabel, titleLabelText] = new MemberRelationship(form, formText);
Комментарии
Конструкторы сериализуют себя в код с помощью подсистемы, которая выполняет поиск по значениям динамических свойств объектов и создает эти значения в виде кода. Например, текст кнопки создается в следующем формате.
this.okButton.Text = "OK";
Одним из ограничений этой схемы является то, что трудно получить свойство из другого расположения. Например, очень трудно выдавать код в следующем формате, так как единственное, что генератор кода может полагаться на значение в свойстве.
this.titleLabel.Text = this.Text;
Примечания для тех, кто реализует этот метод
Класс MemberRelationshipService имеет значение abstract. Реализация конкретной версии зависит от типов поддерживаемых элементов. Например, для связи одного события с другим может потребоваться другая реализация, отличная от того, что относится к одному свойству. Для реализации службы требуются следующие действия.
Реализуйте SupportsRelationship(MemberRelationship, MemberRelationship) для возврата
trueсвязей, которые вы поддерживаете.Отслеживайте изменения исходной связи и присваивайте изменения значений в целевой связи.
Конструкторы
| Имя | Описание |
|---|---|
| MemberRelationshipService() |
Инициализирует новый экземпляр класса MemberRelationshipService. |
Свойства
| Имя | Описание |
|---|---|
| Item[MemberRelationship] |
Устанавливает связь между исходным и целевым объектом. |
| Item[Object, MemberDescriptor] |
Устанавливает связь между исходным и целевым объектом. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetRelationship(MemberRelationship) |
Возвращает связь с заданной исходной связью. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SetRelationship(MemberRelationship, MemberRelationship) |
Создает связь между исходным объектом и целевой связью. |
| SupportsRelationship(MemberRelationship, MemberRelationship) |
Возвращает значение, указывающее, поддерживается ли данная связь. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |