プライベートフィールドのパブリック関数にアクセスする必要があります。Reflectを使用してプライベートフィールドでパブリック関数を呼び出すC#
例
public partial class Form1 : Form
{
MainControl mainControl = new MainControl();
public Form1()
{
InitializeComponent();
var frame = mainControl.GetType().GetField("CustomControl", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
frame.GetType().GetMethod("Display").Invoke(mainControl, new object[] { });
}
}
public class MainControl
{
public MainControl()
{
CustomControl = new CustomControl();
}
CustomControl CustomControl;
}
public class CustomControl
{
public CustomControl()
{
}
public void Display()
{
MessageBox.Show("Displayed");
}
}
は、ここで私はCustomControlクラスの表示機能を起動する必要があります。
しかし、上記のアプローチでは例外が発生しています。誰かが私にこれを助けることができますか?
例外は何ですか? – robjwilkins
設計時に 'Modifiers'プロパティを' Public'に設定することでコントロールを公開することができますか? –