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