これは簡単な質問のように思えますが、何らかの理由でどこにも答えが見つかりません。基本的には、 NamedParametersを取るコンストラクターを実装できるようにしたいと考えています。
名前付きパラメーターとは、次のような既定値 (オプションのパラメーター) を持つパラメーターを意味するものではありません。
public SomeMethod(){
string newBar = Foo(bar2 : "customBar2");
}
public string Foo(string bar1 = "bar1", bar2 = "bar2" ){
//...
}
私が達成しようとしているものの良い例は、System.Web.MvcアセンブリのAuthorizeAttributeです。次の方法で使用できます。
[Authorize(Roles = "Administrators", Users = "ThatCoolGuy")]
public ActionResult Admin(){
}
インテリセンスでのコンストラクターの署名は次の例のようになり、これらの NamedParameters がクラス プロパティにマッピングされていると思います (確認してください)。
AuthorizeAttribute.AuthorizeAttribute( NamedParameters... ) System.Web.Mvc.AuthorizeAttribute クラスの新しいインスタンスを初期化します
名前付きパラメーター:
- 順序 int
- ユーザー文字列
- ロール文字列