複数の値を持つエントリを持つリソース ファイルを持つことは可能ですか。
例えば。のようなものが欲しいです。
Resource.CanViewSection.Value
Resource.CanViewSection.Description.
この理由は、データベースがコード ファースト アプローチで作成されており、アプリケーションに非常に細かい権限を実装する必要があるためです。それらをすべて一元化するのが好きです。
したがって、データベースシーダーでは、次のようなことができます。
private IEnumerable<Permission> SetupParameterPermissions()
{
var innerCollection = new List<Permission>
{
//id like to do this
this.New(Resource.CanViewSection.Value, Resource.CanViewSection.Description),
//instead of this
this.New("CanViewSection", "User can view the section")
};
return this.SetGroupId(innerCollection, PermissionGroupEnum.Parameters);
}
私たちのサービスでは、次のようにリソースに対してアクセス チェックを実行するだけです。
例えば。
if(UserHasAccessTo(Resource.CanViewSection.Value))
{
// do something amazing
}
私はいくつかのアプローチを試みました、EG。リソースの値の列に名前を追加し、コメント セクションに説明を追加しますが、リソース ファイルのコメント列にプログラムでアクセスする方法がわかりません。
ENUMSでもこの効果を達成できることはわかっていますが、大量の権限があり、2つの同様に巨大な拡張機能を持つ巨大なENUMのアイデアが奇妙なので、最善のアプローチが何であるかを推測しています.アウト。
public enum SomeEnum
{
CanViewSection
}
public static class SomeEnumExtensions
{
public static string GetValue(this SomeEnum)
{
switch (me)
{
case SomeEnum.CanViewSection:
return "CanViewSection";
default:
return "Fail!";
}
}
public static string GetDescription(this SomeEnum)
{
switch (me)
{
case SomeEnum.CanViewSection:
return "YOLO!";
default:
return "Fail!";
}
}
}
他の提案も受け付けていますか?