カスタムクラスを設定ファイルに保存/シリアル化するにはどうすればよいですか? 質問する

カスタムクラスを設定ファイルに保存/シリアル化するにはどうすればよいですか? 質問する

次のように 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)。名前空間とクラス名しないでくださいツリーに表示されるので、この部分では何をする必要があるのか​​が明確ではなく、少し混乱します。

おすすめ記事