次の方法で共有


XmlForm.Extension プロパティ

定義

System.ReflectionObject使用して、フォームのプライマリ フォーム コード ファイルに含まれる関数とグローバル変数にアクセスするための を取得します。

public:
 abstract property System::Object ^ Extension { System::Object ^ get(); };
public abstract object Extension { get; }
member this.Extension : obj
Public MustOverride ReadOnly Property Extension As Object

プロパティ値

Object System.Reflection を使用して、フォームのプライマリ フォーム コード ファイルに含まれる関数とグローバル変数にアクセスするための 。

次のコード例では、 Extension プロパティを使用して System.Object を返し、 という MyMethodカスタム メソッドを呼び出します。

object extObj = this.Extension;
extObj.GetType().InvokeMember("MyMethod",
   BindingFlags.InvokeMethod |
   BindingFlags.DeclaredOnly |
   BindingFlags.Public |
   BindingFlags.Instance, null, extObj, null);
Dim extObj As Object extObj = Me.Extension
extObj.GetType().InvokeMember("MyMethod", _
   BindingFlags.InvokeMethod Or _
   BindingFlags.DeclaredOnly Or _
   BindingFlags.Public Or _
   BindingFlags.Instance, Nothing, extObj, Nothing)

次のコード例では、 Extension プロパティを使用して、InfoPath フォーム コード プロジェクト クラスのメソッドmyCustomMethodにカスタム作業ウィンドウからアクセスできます。

// Custom method added to the form code project.
public string myCustomMethod()
{
   return "Method value";
}
' Custom method added to the form code project.
Function myCustomMethod() As String
   myCustomMethod = "Method value"
End Function

カスタム作業ウィンドウのスクリプトからアクセスmyCustomMethodするには、DHTML ウィンドウ オブジェクトの DHTML 外部プロパティを使用します。

objXmlForm = window.external.XmlForm;
myString = objXmlForm.Extension.myCustomMethod();
Dim objXmlForm
Dim myString
Set objXmlForm = window.external.XmlForm
myString = objXmlForm.Extension.myCustomMethod()

注釈

Extension プロパティによって返される System.Object を使用すると、InfoPath フォームのコード ファイルに実装されている関数とグローバル変数を簡単に使用できるようになります。 通常はカスタム作業ウィンドウ、カスタム ダイアログ ボックス、または関数や変数への直接アクセスが必要な場合があるビューの XSL 変換 (XSLT) で使用します。

カスタム作業ウィンドウ内で System.Object を使用するには、最初に、DHTML window オブジェクトのダイナミック HTML (DHTML) external プロパティを使用して、XmlForm オブジェクトへの参照を設定する必要があります。次に例を示します。

objXmlForm = window.external.XmlForm;

このメンバは、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームだけがアクセスできます。

この型またはメンバーには、Microsoft InfoPath Filler で開いたフォームで実行されるコードからのみアクセスできます。

適用対象