structメソッドを使用して、 を返すメソッドを呼び出したいと思いますMethodInfo.Invoke。ただし、このメソッドの返される変数の型はobjectであり、 にキャストすることはできませんstruct。
( から に切り替える提案と同様に、ここで見つけましstructたclass:http://msdn.microsoft.com/en-us/library/b7tch9h0(VS.90).aspx )
では、呼び出されたメソッドの (値) 結果を適切な型にキャストするにはどうすればよいでしょうか?
(単純なキャストも試しましたが、InvalidCastException がスローされました)
ここに私のコードのいくつかのチャンクがあります:
public class MyInvokedClass
{
public struct MyStruct
{ ... };
public MyStruct InvokedMethod()
{
MyStruct structure;
...
return structure;
}
}
public class MyInvokingClass
{
// Same structure here
public struct MyStruct
{ ... };
static void Main(string[] args)
{
...
MethodInfo methodInfo = classType.GetMethod(methodName);
MyStruct result = (MyStruct)methodInfo.Invoke(classInstance, null);
// the line above throws an InvalidCastException
}
}
皆さん、ありがとうございました!