MemberRelationshipService Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce la classe base per mettere in relazione un membro con un altro.
public ref class MemberRelationshipService abstract
public abstract class MemberRelationshipService
type MemberRelationshipService = class
Public MustInherit Class MemberRelationshipService
- Ereditarietà
-
MemberRelationshipService
Esempio
Semplifica MemberRelationshipService il recupero di un valore di proprietà da un'altra posizione. Una finestra di progettazione può accedere a questo servizio per determinare che un membro viene assegnato il valore di un altro. Il generatore di codice cerca tali relazioni durante la generazione di codice e se viene trovata una relazione tra due membri, genera codice per la relazione anziché cercare il valore della proprietà. Usando l'assegnazione di testo precedente come esempio, nell'esempio di codice seguente viene illustrato il codice temporale di progettazione usato per stabilire una relazione.
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);
Commenti
I progettisti serializzano se stessi per il codice tramite un motore che cerca i valori di proprietà live degli oggetti e genera tali valori come codice. Ad esempio, il testo di un pulsante viene generato nel formato seguente.
this.okButton.Text = "OK";
Una delle limitazioni di questo schema è che è difficile recuperare una proprietà da un'altra posizione. Ad esempio, è molto difficile generare codice nel formato seguente, perché l'unica cosa che il generatore di codice può basarsi è il valore nella proprietà.
this.titleLabel.Text = this.Text;
Note per gli implementatori
La MemberRelationshipService classe è abstract
. L'implementazione di una versione concreta varia a seconda dei tipi di membri supportati. Ad esempio, la correlazione di un evento a un altro potrebbe richiedere un'implementazione diversa rispetto alla correlazione di una proprietà a un'altra. L'implementazione del servizio richiede la procedura seguente:
Implementare SupportsRelationship(MemberRelationship, MemberRelationship) per restituire
true
le relazioni supportate.Tenere traccia delle modifiche apportate alla relazione di origine e assegnare modifiche al valore nella relazione di destinazione.
Costruttori
MemberRelationshipService() |
Inizializza una nuova istanza della classe MemberRelationshipService. |
Proprietà
Item[MemberRelationship] |
Stabilisce una relazione tra un oggetto di origine e uno di destinazione. |
Item[Object, MemberDescriptor] |
Stabilisce una relazione tra un oggetto di origine e uno di destinazione. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetRelationship(MemberRelationship) |
Ottiene una relazione con la relazione di origine data. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
SetRelationship(MemberRelationship, MemberRelationship) |
Crea una relazione tra l'oggetto di origine e la relazione di destinazione. |
SupportsRelationship(MemberRelationship, MemberRelationship) |
Ottiene un valore che indica se la relazione data è supportata. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |