Скажем, у меня есть перечисление что-то вроде:
enum OrderStatus
{
AwaitingAuthorization,
InProduction,
AwaitingDespatch
}
Я также создал метод расширения для моего перечисления, чтобы убрать отображаемые значения в пользовательском интерфейсе, поэтому у меня есть что-то вроде:
public static string ToDisplayString(this OrderStatus status)
{
switch (status)
{
case Status.AwaitingAuthorization:
return "Awaiting Authorization";
case Status.InProduction:
return "Item in Production";
... etc
}
}
Вдохновленный отличным сообщением здесь, я хочу привязать свои перечисления к SelectList
с помощью метода расширения:
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
однако, чтобы использовать значения DisplayString в выпадающем меню, мне нужно добавить ограничение вдоль строк
: where TEnum has extension ToDisplayString
Очевидно, что ничто из этого не будет работать вообще с нынешним подходом, если только не найдется какой-то хитроумный трюк, о котором я не знаю.
Есть ли у кого-нибудь идеи о том, как я могу реализовать что-то вроде этого?