こういう場合、Typeからコンストラクタを取り出し、そこからインスタンス化します。コードはこんな感じ。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//using System.Reflection;
MethodBase.GetCurrentMethod();
}
private void button1_Click(object sender, EventArgs e)
{
Type tp = typeof(PrivateConst);
ConstructorInfo ci = tp.GetConstructors(BindingFlags.NonPublic| BindingFlags.Instance)[0];
object obj = ci.Invoke(new object[] { });
System.Diagnostics.Debug.WriteLine("Type=" + obj.GetType());
//「Type=WindowsFormsApplication1.PrivateConst」と表示された
}
}
class PrivateConst
{
private PrivateConst()
{
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//using System.Reflection;
MethodBase.GetCurrentMethod();
}
private void button1_Click(object sender, EventArgs e)
{
Type tp = typeof(PrivateConst);
ConstructorInfo ci = tp.GetConstructors(BindingFlags.NonPublic| BindingFlags.Instance)[0];
object obj = ci.Invoke(new object[] { });
System.Diagnostics.Debug.WriteLine("Type=" + obj.GetType());
//「Type=WindowsFormsApplication1.PrivateConst」と表示された
}
}
class PrivateConst
{
private PrivateConst()
{
}
}
}
0 件のコメント:
コメントを投稿