リフレクションによって「内部」コードを実行する方法はありますか?ここでc#、Internal、Reflection
はプログラム例です:通常のTestClassを作成
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エラーを取得しますあなたがアセンブリの外からそれを呼び出そうとした場合に起こることです)。
これは不可能なのですか、それとも私ができる回避策がありますか?別のポストにPreets方向に基づいて、ここで
にだけで簡単にヒントある場合は、代わりに新しいタイプのTypes.EmptyTypesを使用することができますAccessPrivateWrapperダイナミックラッパーを使用してください。 – Vinicius