C#:Serializable()属性は、クラスインスタンスを別のフォームに渡すことを防ぎますか?
次のクラスがあり、アプリケーションの設定モジュールを構築しようとしています。しかし、settingForm メソッドで _configurator にアクセスしようとすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生します。なんで?
[Serializable()]
public class Config
{
public Config() { }
public string ComPort
{
get
{
return comPort;
}
set
{
comPort = value;
}
}
private string comPort;
}
public partial class kineticMoldDockUserControl : UserControl
{
private settingsForm setForm = null;
private Config _cf = null;
public kineticMoldDockUserControl()
{
InitializeComponent();
_cf = new Config();
_cf.ComPort = "COM12";
}
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!Application.OpenForms.OfType<settingsForm>().Any())
{
setForm = new settingsForm();
setForm.Show();
setForm.cf = _cf;
}
}
}
public partial class settingsForm : Form
{
Config _configutor = null;
public Config cf { get { return _configutor; } set { _configutor = value; } }
public settingsForm()
{
InitializeComponent();
try
{
MessageBox.Show(_configutor.ComPort.GetType().ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}