C#. Входные данные :
Есть сборка MyTest.dll
В ней есть такой класс ClassA:
Решение:
Есть сборка MyTest.dll
В ней есть такой класс ClassA:
using MyTest
{
public class A
{
internal class B
{
internal static void DoSmth();
}
}
}
Решение:
//грузим dll-ку любым удобным вам способом:
Assembly assembly = Assembly.Load("Assembly text name, Version, Culture, PublicKeyToken");
Type[] types = assembly.GetType("MyTest.A").GetNestedTypes(BindingFlags.NonPublic);
Type targetType;
for (int i = 0; i < types.Length; i++)
{
if (types[i].Name == "B")
{
targetType = types[i];
break;
}
}
BindingFlags bf = BindingFlags.Static | BindingFlags.NonPublic;
MethodInfo mi = targetType.GetMethod("DoSmth", bf);
//Так как метод статический, первым параметром в Invoke передаём null.
mi.Invoke(null, null);
This comment has been removed by a blog administrator.
ReplyDelete