Это кажется простым вопросом, но я почему-то нигде не могу найти ответа. По сути, я хотел бы иметь возможность реализовать конструктор, который принимает NamedParameters.
Под именованными параметрами я не имею в виду параметры со значениями по умолчанию (необязательные параметры), такие как:
public SomeMethod(){
string newBar = Foo(bar2 : "customBar2");
}
public string Foo(string bar1 = "bar1", bar2 = "bar2" ){
//...
}
Хорошим примером того, чего я пытаюсь добиться, является AuthorizeAttribute из сборки System.Web.Mvc. Что вы можете использовать следующим образом:
[Authorize(Roles = "Administrators", Users = "ThatCoolGuy")]
public ActionResult Admin(){
}
Подпись конструктора в intellisense выглядит как в следующем примере, и я считаю (пожалуйста, подтвердите), что эти NamedParameters сопоставляются со свойствами класса.
AuthorizeAttribute.AuthorizeAttribute (NamedParameters ...). Инициализация нового экземпляра класса System.Web.Mvc.AuthorizeAttribute.
Именованные параметры:
- Заказать int
- Строка пользователей
- Строка ролей