有没有办法通过反射执行“内部”代码?
这是一个示例程序:
using System;
using System.Reflection;
namespace ReflectionInternalTest
{
class Program
{
static void Main(string[] args)
{
Assembly asm = Assembly.GetExecutingAssembly();
// Call normally
new TestClass();
// Call with Reflection
asm.CreateInstance("ReflectionInternalTest.TestClass",
false,
BindingFlags.Default | BindingFlags.CreateInstance,
null,
null,
null,
null);
// Pause
Console.ReadLine();
}
}
class TestClass
{
internal TestClass()
{
Console.WriteLine("Test class instantiated");
}
}
}
创建一个测试类通常工作得很好,但是当我尝试通过反射创建一个实例时,我收到一个 missingMethodException 错误,说它找不到构造函数(如果你尝试从程序集外部调用它会发生这种情况)。
这是不可能的,还是我可以做一些解决方法?