次のように 2 つの文字列を保持する小さなクラスがあります。
public class ReportType
{
private string displayName;
public string DisplayName
{
get { return displayName; }
}
private string reportName;
public string ReportName
{
get { return reportName; }
}
public ReportType(string displayName, string reportName)
{
this.displayName = displayName;
this.reportName = reportName;
}
}
次の操作を実行できるように、このクラスのインスタンスを設定ファイルに保存します。
ReportType reportType = Settings.Default.SelectedReportType;
Google で検索すると、それが可能であることが示唆されているようですが、従うべき明確なガイドはどこにも見当たりません。シリアル化が必要なことは理解していますが、どこから始めればよいのかよくわかりません。また、Visual Studio の設定画面で [種類] 列の [参照] をクリックしても、ReportType クラスを含む現在の名前空間を選択するオプションがありません。
ベストアンサー1
OK、ようやく解決できたと思います。まず最初に、シリアル化する必要のある ReportType クラスの各プロパティに次の属性を追加し、ApplicationSettingsBase からクラスを継承します。
public class ReportType : ApplicationSettingsBase
{
private string displayName;
[UserScopedSetting()]
[SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Xml)]
public string DisplayName
{
get { return displayName; }
}
..............
そして、アセンブリを再構築したら(重要!)、設定画面に移動して参照をクリックし、下部のテキストボックスに名前空間とクラス名を入力します(例:Label_Creator.ReportType)。名前空間とクラス名しないでくださいツリーに表示されるので、この部分では何をする必要があるのかが明確ではなく、少し混乱します。