2009-03-02 2 views
9

.NETプロジェクトでSettingsクラスを使用しています。エディタでは、Settingsクラスの個々のプロパティの型として特定の型しか使用できないことに気付きました。たとえば、コードやジェネリックコレクションから列挙されたプロパティを持つ場合はどうなりますか?私はそれをどのように実装しますか?複合型の設定を使用する

私は、部分クラスのメカニズム(設定は既に部分クラスとして定義されているため)を使用して別ファイルで行うことができると思いますが、誰かがそれに同意しているかどうか、エディタ内でそれを行う。

+0

私はあなたの質問を正しく理解していないのですが、主にエディタと「特定のタイプをタイプとして使用できる」という部分については、明確にしたり、言い換えたりできますか? – mbillard

+0

あなたのプロジェクトにSettings.settingsファイルを作成すると、設定のデータ型や名前などを設定するためのエディタがあります。 TreeListボックスから設定のデータ型を選択します。 TreeListボックスは、特定の型のみを参照します。私のアセンブリの型は参照ではありません。 –

+0

を参考にしています*参考しません... :) –

答えて

10

新しい「設定」ファイルを作成して、複雑な/ユーザー定義のタイプの選択肢を追加します。 Enumの使い方は次のとおりです。

ステップ1。設定

alt text

ステップ2ファイルを作成します。タイプ

alt text

ステップ3を参照します。選択タイプ(Namespace.TypeName)

alt text

ステップ4。 Taダ - はそれの一つは、オプションの構築だと、それはデフォルトコンストラクタを持っていることを確認し、そのリストに表示するカスタムクラスを取得するには

alt text

+0

ありがとう、私はあなたが単にタイプを指定することができ、それがうまくいくかどうかわかりませんでした。同じ方法で設定用の汎用リストを指定できるかどうか知っていますか? –

+0

設定ファイルは基本的に私が知っている限りあなたが望むどんなタイプも返すことができます。しかし、一般的なリストでは、一般的なコレクションを意味しますか? – Sung

+0

はい、ジェネリックコレクション(私の場合はリストが欲しかった) –

0

部分的なクラスの一部として別のファイルで行うのはまったく問題ありません。

0

複雑なオブジェクトを構成ファイルに挿入したい場合は、いくつかのDependency Injection Framework s.aを使用することをお勧めします。 Spring.Net。

4

を完了します。私はこれを難しい方法で学びました

2

設定ファイルでジェネリックリストが可能かどうかに関するJeffreyのコメント/質問に答えるには、答えは「はい」です。 Settings xmlファイルを手動で編集するだけで済みます。私は次のクラスがある場合たとえば、:

public class UrlAlias 
{ 
    public string Name { get; set; } 
    public string BaseUrl { get; set; } 
} 

を私は私の設定ファイルを右クリックすることで、これらのリストを作成し、ファイルを開くプログラムを選択することができます...

次にXML /テキストエディタを選択し、つまり、完全修飾クラス名に「タイプ」の値を設定します。

Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]" 

フル設定のXMLは次のようになります。

<?xml version='1.0' encoding='utf-8'?> 
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings"> 
<Profiles /> 
    <Settings> 
    <Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User"> 
     <Value Profile="(Default)"></Value> 
    </Setting> 
    </Settings> 
</SettingsFile> 

これを実行したら、作成したカスタム設定オブジェクトのリストを適切に構成する必要があります。

関連する問題