質問
.NETプロジェクトでSettingsクラスを使用しています。エディターでは、Settingsクラスの個々のプロパティのタイプとして使用できるのは特定のタイプのみです。たとえば、コードからの列挙またはプロパティのジェネリックコレクションであるプロパティが必要な場合はどうなりますか?どのように実装しますか?
部分クラスのメカニズムを使用して別のファイルでそれを行うことができると推測しています(設定はすでに部分クラスとして定義されているため)が、誰かがそれに同意するかどうか、そしてエディター内で行います。
解決
新しい「設定」を作成します;複雑なユーザー定義タイプの選択を追加するファイル。 Enumの使用方法を次に示します。
ステップ1 。設定ファイルを作成します
ステップ2 。タイプを参照
ステップ3 。タイプ(Namespace.TypeName)を選択します
ステップ4 。タダ-完了
他のヒント
そのリストに表示するカスタムクラスを取得するには、作成するオプションの1つとしてデフォルトコンストラクターがあることを確認してください。私はこれを難しい方法で学びました
設定ファイルで汎用リストが使用可能かどうかについての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>
これを行うと、作成したカスタム設定オブジェクトのリストが適切に構成されているはずです。
部分クラスの一部として別のファイルで実行することは完全に受け入れられます。
構成ファイルを使用して複雑なオブジェクトを作成できるようにするには、Dependency Injection Frameworkを使用することをお勧めします。 Spring.Net。