Это похоже на простой вопрос, но по какой-то причине я не могу найти ответ нигде. В принципе, я хотел бы иметь возможность реализовать конструктор, который принимает 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
- Строка пользователей
- Строка ролей