Я использую атрибут Description в своих перечислениях для предоставления удобного имени в поле перечисления. напримерSystem.ComponentModel.DescriptionAttribute в портативной библиотеке классов
public enum InstallationType
{
[Description("Forward of Bulk Head")]
FORWARD = 0,
[Description("Rear of Bulk Head")]
REAR = 1,
[Description("Roof Mounted")]
ROOF = 2,
}
И доступ это легко с хорошим вспомогательным методом:
public static string GetDescriptionFromEnumValue(Enum value)
{
DescriptionAttribute attribute = value.GetType()
.GetField(value.ToString())
.GetCustomAttributes(typeof(DescriptionAttribute), false)
.SingleOrDefault() as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
Мне нужно преобразовать это в портативные библиотеки классов, но это, кажется, не имеет доступ к библиотеке System.ComponentModel , когда я пытаюсь добавить уважение, VS говорит мне, что я уже ссылался на все.
Благодаря
, насколько я знаю, 'System.ComponentModel.DescriptionAttribute' фактически является частью системы' .dll', который действительно должен быть ссылкой на ваш проект. Вы не просто пропустили директиву 'using'? – olydis
нет. У меня есть использование в (экземпляр вставляемого класса из предыдущей dll). Вы правы, system.componentmodel есть, просто невозможно использовать описание – Crudler