IReflect.InvokeMember メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > IReflect.InvokeMember メソッドの意味・解説 

IReflect.InvokeMember メソッド

指定されたメンバを呼び出します。

名前空間: System.Reflection
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Function InvokeMember ( _
    name As String, _
    invokeAttr As BindingFlags, _
    binder As Binder, _
    target As Object, _
    args As Object(), _
    modifiers As ParameterModifier(), _
    culture As CultureInfo, _
    namedParameters As String() _
) As Object
Dim instance As IReflect
Dim name As String
Dim invokeAttr As BindingFlags
Dim binder As Binder
Dim target As Object
Dim args As Object()
Dim modifiers As ParameterModifier()
Dim culture As CultureInfo
Dim namedParameters As String()
Dim returnValue As Object

returnValue = instance.InvokeMember(name, invokeAttr, binder, target, args, modifiers,
 culture, namedParameters)
Object InvokeMember (
    string name,
    BindingFlags invokeAttr,
    Binder binder,
    Object target,
    Object[] args,
    ParameterModifier[] modifiers,
    CultureInfo culture,
    string[] namedParameters
)
Object^ InvokeMember (
    String^ name, 
    BindingFlags invokeAttr, 
    Binder^ binder, 
    Object^ target, 
    array<Object^>^ args, 
    array<ParameterModifier>^ modifiers, 
    CultureInfo^ culture, 
    array<String^>^ namedParameters
)
Object InvokeMember (
    String name, 
    BindingFlags invokeAttr, 
    Binder binder, 
    Object target, 
    Object[] args, 
    ParameterModifier[] modifiers, 
    CultureInfo culture, 
    String[] namedParameters
)
function InvokeMember (
    name : String, 
    invokeAttr : BindingFlags, 
    binder : Binder, 
    target : Object, 
    args : Object[], 
    modifiers : ParameterModifier[], 
    culture : CultureInfo, 
    namedParameters : String[]
) : Object

パラメータ

name

検索対象のメンバの名前。

invokeAttr

BindingFlags 呼び出し属性の 1 つ。invokeAttrパラメータには、コンストラクタ、メソッド、プロパティ、フィールドなどを指定できます。適切な呼び出し属性を指定する必要があります。メンバの名前として空の文字列 ("") を渡すことによって、クラスの既定のメンバを呼び出します。

binder

BindingFlags ビット フラグの 1 つ。このメソッドに関連するプロパティを格納する Binder を実装します。

target

指定したメンバを呼び出す対象となるオブジェクト。静的メンバの場合、このパラメータは無視されます。

args

呼び出すメンバのパラメータの数、順序、および型を格納するオブジェクトの配列。パラメータがない場合は、空の配列です。

modifiers

ParameterModifier オブジェクトの配列。この配列は、メタデータにある呼び出されたメンバの引数属性を表す args パラメータと同じ長さです。パラメータには、属性 pdIn、pdOut、pdRetval、pdOptional、および pdHasDefault を使用できます。これらはそれぞれ、[In]、[Out]、[retval]、[optional]、および既定のパラメータを表します。これらの属性は、さまざまな相互運用性サービスで使用されます。

culture

型の強制変換を制御するために使用する CultureInfo のインスタンス。たとえば、culture は 1000 を表す文字列を double 値に変換します。これは、カルチャによって 1000 の表記が異なるためです。このパラメータが null 参照 (Visual Basic では Nothing) の場合は、現在のスレッドの CultureInfo が使用されます。

namedParameters

パラメータの文字列配列。

戻り値
指定されたメンバ。

例外例外
例外の種類条件

ArgumentException

invokeAttr が BindingFlags.CreateInstance で、その他のビット フラグも設定されています。

ArgumentException

invokeAttr が BindingFlags.CreateInstance ではなく、name が null 参照 (Visual Basic では Nothing) です。

ArgumentException

invokeAttr が BindingFlags の呼び出し属性ではありません。

ArgumentException

プロパティまたはフィールドに対して、invokeAttr の get と set が両方指定されています。

ArgumentException

invokeAttr でフィールド set と Invoke メソッドの両方が指定されています。args はフィールド get 用です。

ArgumentException

フィールド set に複数の引数が指定されています。

MissingFieldException

フィールドまたはプロパティが見つかりません。

MissingMethodException

メソッドが見つかりません。

SecurityException

必要な ReflectionPermission がない状態でプライベート メンバが呼び出されました。

解説解説

呼び出されるメソッドは、アクセスできる必要があり、指定したバインダと呼び出し属性の制約の下で、指定した引数リストと最も的確に一致します。

メソッド宣言のパラメータの数が指定した引数リストの引数の数と等しく、各引数の型がバインダによってパラメータの型に変換できる場合、メソッドが呼び出されます。

メモメモ

InvokeMember に渡すパラメータ修飾子の配列に含めることができるパラメータ修飾子は 1 つだけです。COM に公開するときに参照で渡す必要がある引数を判断するときは、最初のパラメータ修飾子だけが対象になります。

バインダは、バインディング要求 (BindingFlags.InvokeMethod、GetProperties など) された型に従って、一致するすべてのメソッドを検索します。メソッド セットは、名前、引数の数、バインダで定義されている一連の検索修飾子によってフィルタ処理されます。メソッドが選択された後、呼び出され、その時点でのアクセシビリティが検査されます。検索では、メソッドに関連付けられているアクセシビリティ属性に基づいて、どのメソッド セットを検索するかを制御できます。BindToMethod によって、呼び出すメソッドが選択されます。既定のバインダは最も的確に一致したものを選択します。

完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていれば、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。

使用例使用例

Now プロパティの値を取得する例を次に示します。

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class MainClass
    Public Overloads Shared
 Sub Main(ByVal args() As
 String)
        Dim tDate As Type = GetType(System.DateTime)
        Dim result As [Object] = tDate.InvokeMember("Now",
 _
            BindingFlags.GetProperty, Nothing, Nothing,
 New [Object](-1) {})
        Console.WriteLine(result.ToString())
    End Sub 'Main
End Class 'MainClass
using System;
using System.Reflection;

public class MainClass 
{ 
    public static void Main(string[]
 args)
    {
        Type tDate = typeof(System.DateTime);
        Object result = tDate.InvokeMember("Now", 
            BindingFlags.GetProperty, null, null,
 new Object[0]);
        Console.WriteLine(result.ToString());
    }
}
#using <System.DLL>

using namespace System;
using namespace System::Reflection;

#define NULL 0
void main()
{
   Type^ tDate = Type::GetType( L"System.DateTime" );
   Object^ result = tDate->InvokeMember( L"Now", BindingFlags::GetProperty,
 nullptr, NULL, gcnew array<Object^>(0) );
   Console::WriteLine( result->ToString() );
}

import System.*;
import System.Reflection.*;

public class MainClass
{   
    public static void main(String[]
 args)
    {
        Type tDate = Type.GetType("System.DateTime");
        Object result = tDate.InvokeMember("Now", 
            BindingFlags.GetProperty, null, null,
 new Object[0]);
        Console.WriteLine(result.ToString());
    } //main
} //MainClass
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「IReflect.InvokeMember メソッド」の関連用語

IReflect.InvokeMember メソッドのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



IReflect.InvokeMember メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS