私が持っている場合
class A
{
public void DoStuff()
{
B b;
}
}
struct B {}
struct C {}
そして私はtypeof(A)
、
A で使用されるすべてのタイプのリストを取得したいと思います。この場合は であり、 ではtypeof(B)
ありませんtypeof(C)
。
リフレクションでこれを行う良い方法はありますか?
私が持っている場合
class A
{
public void DoStuff()
{
B b;
}
}
struct B {}
struct C {}
そして私はtypeof(A)
、
A で使用されるすべてのタイプのリストを取得したいと思います。この場合は であり、 ではtypeof(B)
ありませんtypeof(C)
。
リフレクションでこれを行う良い方法はありますか?
MethodBodyクラスを確認する必要があります(リンクに非常に良い使用例があります)。これにより、次のようなコードを記述できます。
MethodInfo mi = typeof(A).GetMethod("DoStuff");
MethodBody mb = mi.GetMethodBody();
foreach (LocalVariableInfo lvi in mb.LocalVariables)
{
if (lvi.LocalType == typeof(B))
Console.WriteLine("It uses a B!");
if (lvi.LocalType == typeof(C))
Console.WriteLine("It uses a C!");
}