что у меня есть перечислимую что-то вроде:Поведение имитировать перечисление реализующий интерфейс
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
}
}
Вдохновленный отличный пост here, я хочу, чтобы связать мои перечислений в виде SelectList
с помощью метода расширения:
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
однако, использовать значение DisplayString в пользовательском интерфейсе выпадающий мне нужно добавить ограничение по линии
: where TEnum has extension ToDisplayString
Очевидно ничего из этого не будет работать вообще с текущий подход, если только не существует какой-то умной трюки, о которой я не знаю.
Есть ли у кого-нибудь идеи о том, как я могу реализовать что-то вроде этого?
Я использую эту реализацию много. –
Действительно приятно, спасибо –
Блестящий. Небольшое предостережение: вы не можете использовать значения по умолчанию, или вы получаете «Значение параметра по умолчанию для« »должно быть константой времени компиляции. –
as9876