私は、C#の内部にデータの集合を構築するタスクを持っています。異なるタイプのネストされた辞書
各データセットは、これらの属性があります。
- タイプ
- 名(ShortDescription)
- ServiceString
- HTTPMETHOD
属性の "タイプ" と "名前" を持ちます既知の固定値のセット。
例データ:
Type: User
-> Name: Get_Users_List
-> Name: Add_User
-> Name: Enable_User
-> Name: Disable_User
Type: Rights
-> Name: Get_Rights_List
-> Name: Approve_User_Right
...というように。
コーディングエラーを最小限に抑えるため、エントリのリストがわかっていて固定されているため、「タイプ」と「名前」にいくつかの列挙型を作成しました。
例データ:
enumTypes
enumUserFunctions
enumRightFunctions
...というように。
私はまた、データは、コード内でアクセスされるべき方法を知っている:
SomeCollection[enumType.User][enumUserFunctions.Add_User].ServiceString
SomeCollection[enumType.User][enumRightFunctions.Approve_User_Right].HTTPMethod
私は、この目標を達成するために、ネストされた辞書を使用しようとしているが、私は、ネストされた辞書が異なるを持っていることを問題に直面してタイプしようとしているデータセットタイプに応じてタイプします。
Dictionary<enumTypes, Dictionary<variableEnum, AutoPropertyWithValues>>
私はどのようにして目標を快適に達成できますか?
編集
根本的な原因は、私は私のコードで複数回使用する必要があるいくつかのオブジェクトを持っている、と私は彼らにナビゲートする直感的な方法を実装したいということです。これは私がSinatrの提案の後、私の根本的な考えから作ったものです。
public class FunctionCollection
{
public UserFunctions UserFunctions { get; } = new UserFunctions();
public BaseDataFunctions BaseDataFunctions { get; } = new BaseDataFunctions();
/* ... and so on ... */
}
public class UserFunctions
{
public RestFunction Do_User_Login { get; set; } = new RestFunction();
public RestFunction Do_User_Logout { get; set; } = new RestFunction();
/* ... */
}
public class BaseDataFunctions
{
public RestFunction Get_Product_List { get; set; } = new RestFunction();
/* ... */
}
public class RestFunction
{
public string ServiceUriString { get; set; }
public HttpVerbs Method { get; set; }
/* ... and so on ... */
}
ちょうど最後の質問です。 定義にオブジェクトを直接設定する方法はありますか? Do_User_Loginの定義における例設定ServiceUriStringについて とHTTPMETHOD:
public RestFunction Do_User_Login { get; set; } = new RestFunction();
辞書を入れ子にすることはできますが、代わりに 'User'と' Rights'クラスを使う方がきれいです。 – Abion47
設定を保持するのに 'Dictionary'を使う考えが全くありません。 'AutoPropertyWithValue'とは何ですか?答えは実際に値で何をしているのか(辞書がいっぱいになって使用されているかどうか)によって決まります。 – Sinatr
ルートの問題は何ですか?設定ファイル(JSON)から値を取得するのが嫌ですか? –