MemberRelationshipService クラス


1 つのメンバーを別のメンバーに関連付けるための基本クラスを提供します。Provides the base class for relating one member to another.

public ref class MemberRelationshipService abstract
public abstract class MemberRelationshipService
type MemberRelationshipService = class
Public MustInherit Class MemberRelationshipService

MemberRelationshipService は、別の場所からのプロパティ値の取得を簡略化します。The MemberRelationshipService simplifies retrieval of a property value from another location. デザイナーは、このサービスにアクセスして、あるメンバーに別のメンバーの値が割り当てられていることを示します。A designer can access this service to dictate that one member is assigned the value of another. コードジェネレーターは、コードを生成するときにこのようなリレーションシップを検索します。2つのメンバー間のリレーションシップがコードジェネレーターで見つかった場合は、プロパティ値を検索するのではなく、リレーションシップのコードを出力します。The code generator searches for such relationships when generating code, and if a relationship between two members is found the code generator, it emits code for the relationship rather than searching for the property value. 次のコード例は、前のテキスト割り当てを例として使用して、リレーションシップを確立するために使用されるデザイン時コードを示しています。Using the previous text assignment as an example, the following code example shows design time code used to establish a relationship.

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);  


デザイナーは、オブジェクトのライブプロパティ値を検索し、それらの値をコードとして生成するエンジンを通じて、自身をコードにシリアル化します。Designers serialize themselves to code through an engine that searches through the live property values of objects and generates those values as code. たとえば、ボタンのテキストは次の形式で生成されます。So, for example, the text of a button is generated in the following format.

this.okButton.Text = "OK";  

このスキームの制限事項の1つは、別の場所からプロパティを取得するのが困難であることです。One of the limitations of this scheme is that it is difficult to retrieve a property from another location. たとえば、コードジェネレーターが依存できるのはプロパティの値だけなので、コードを次の形式で出力することは非常に困難です。For example, it is very difficult to emit code in the following format, because the only thing the code generator can rely on is the value in the property.

this.titleLabel.Text = this.Text;  

注意 (実装者)

MemberRelationshipService クラスは abstractです。The MemberRelationshipService class is abstract. 具象バージョンの実装は、サポートされるメンバーの種類によって異なります。Implementing a concrete version varies depending on the types of members that are supported. たとえば、あるイベントを別のイベントに関連付ける場合、1つのプロパティを別のプロパティに関連付けるよりも、異なる実装が必要になることがあります。For example, relating one event to another might require a different implementation than relating one property to another. サービスを実装するには、次の手順を実行する必要があります。Implementing the service requires the following steps: -サポートしているリレーションシップの true を返すために SupportsRelationship(MemberRelationship, MemberRelationship) を実装します。- Implement SupportsRelationship(MemberRelationship, MemberRelationship) to return true for relationships that you support.

-ソースリレーションシップの変更を追跡し、値の変更をターゲットリレーションシップに割り当てます。- Track changes to the source relationship and assign value changes into the target relationship.



MemberRelationshipService クラスの新しいインスタンスを初期化します。Initializes a new instance of the MemberRelationshipService class.



ソース オブジェクトとターゲット オブジェクトの間のリレーションシップを確立します。Establishes a relationship between a source and target object.

Item[Object, MemberDescriptor]

ソース オブジェクトとターゲット オブジェクトの間のリレーションシップを確立します。Establishes a relationship between a source and target object.



指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

指定したソース リレーションシップとのリレーションシップを取得します。Gets a relationship to the given source relationship.


現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SetRelationship(MemberRelationship, MemberRelationship)

ソース オブジェクトとターゲット リレーションシップの間のリレーションシップを作成します。Creates a relationship between the source object and target relationship.

SupportsRelationship(MemberRelationship, MemberRelationship)

指定したリレーションシップがサポートされているかどうかを示す値を取得します。Gets a value indicating whether the given relationship is supported.


現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)