Есть ли способ выполнить "внутренний" код с помощью отражения?
Вот пример программы:
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, в котором говорится, что не удается найти конструктор (именно это и произойдет, если вы попытаетесь вызвать его извне сборки) .
Это невозможно, или есть какое-то решение, которое я могу сделать?