Silverlight メソッドの動的呼び出し

動的呼び出しを使用すると、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、メソッドの呼び出し、プロパティーの取得、またはプロパティーの設定を直接実行できます。また、このコントロールの Silk4NET API で使用できないメソッドおよびプロパティーも呼び出すことができます。動的呼び出しは、作業しているカスタム コントロールを操作するために必要な機能が、Silk4NET API を通して公開されていない場合に特に便利です。

オブジェクトの動的メソッドは Invoke メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

オブジェクトの複数の動的メソッドは InvokeMethods メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

動的プロパティの取得には GetProperty メソッドを、動的プロパティの設定には SetProperty メソッドを使用します。コントロールでサポートされている動的プロパティのリストを取得するには、GetPropertyList メソッドを使用します。

たとえば、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、タイトルを String 型の入力パラメータとして設定する必要がある SetTitle というメソッドを呼び出すには、次のように入力します:
control.Invoke("SetTitle", "my new title")
注: 通常、ほとんどのプロパティは読み取り専用で、設定できません。
注: ほとんどのテクノロジー ドメインでは、メソッドを呼び出してプロパティーを取得する場合、Reflection を使用します。

サポートされているパラメータ型

次のパラメータ型がサポートされます。
  • すべての組み込み Silk4NET 型。

    Silk4NET 型には、プリミティブ型 (boolean、int、string など)、リスト、およびその他の型 (Point、Rect など) が含まれます。

  • 列挙型。

    列挙パラメータは文字列として渡す必要があります。文字列は、列挙値の名前と一致しなければなりません。たとえば、メソッドが .NET 列挙型 System.Windows.Visiblity のパラメータを必要とする場合には、VisibleHiddenCollapsed の文字列値を使用できます。

  • .NET 構造体とオブジェクト。

    .NET 構造体とオブジェクト パラメータはリストとして渡します。リスト内の要素は、テスト アプリケーションの .NET オブジェクトで定義されているコンストラクタの 1 つと一致しなければなりません。たとえば、メソッドが .NET 型 System.Windows.Vector のパラメータを必要とする場合、2 つの整数値を持つリストを渡すことができます。これが機能するのは、System.Windows.Vector 型が 2 つの整数値を引数に取るコンストラクタを持つためです。

  • その他のコントロール。

    コントロール パラメータは TestObject として渡すことができます。

サポートされているメソッドおよびプロパティ

次のメソッドとプロパティを呼び出すことができます。
  • MSDN が定義する AutomationElement クラスのすべてのパブリック メソッドとプロパティ。詳細については、http://msdn.microsoft.com/en-us/library/system.windows.automation.automationelement.aspx を参照してください。
  • MSUIA が公開するすべてのメソッドとプロパティ。利用可能なメソッドとプロパティは「パターン」で分類されます。パターンとは、MSUIA 固有の用語です。すべてのコントロールは、いくつかのパターンを実装します。一般的なパターンについての概要およびすべての利用可能なパターンについては、http://msdn.microsoft.com/en-us/library/ms752362.aspx を参照してください。カスタム コントロールの開発者は、MSUIA パターン セットを実装することによって、カスタム コントロールのテスト サポートを提供できます。

戻り値

プロパティや戻り値を持つメソッドの場合は、次の値が返されます。
  • すべての組み込み Silk4NET 型の場合は正しい値。
  • 戻り値を持たないすべてのメソッドの場合、C# では null が、VB では Nothing が返されます。
  • すべてのその他の型の場合は文字列。

    この文字列表現を取得するには、テスト対象アプリケーションの返された .NET オブジェクトに対して ToString メソッドを呼び出します。

SilverlightTabItem。 これは TabControl の項目です。
tabItem.Invoke("SelectionItemPattern.Select")
mySilverligtObject.GetProperty("IsPassword")