Как получить значения атрибута Description для отображения в обозревателе объектов?
У меня есть библиотека, написанная на VB. Имеет перечисления со следующим:
Public Enum ModelRelationshipTypes
<Description("For 1 to 0/1 -- i.e. FK is nullable. -- related object is singleton")> _
IHaveZeroOrOne
<Description("For 1 to 1 -- related object is singleton")> _
IHaveOne
<Description("For 0 to many (i.e. FK is nullable) - related object is collection (dictionary)")> _
IHaveZeroOrMore
<Description("For 1 to many (i.e. FK is NOT nullable) - related object is collection (dictionary)")> _
IHaveOneOrMore
<Description("For many to many (for true many too many relationships, with a join table that has only FKs as a composite PK) (related object is dictionary)")> _
IHaveMany
End Enum
Однако при обращении к этой библиотеке в другом проекте (C# - но, вероятно, это не имеет значения), Object Browser не предоставляет Description, похожее на это:
Что мне нужно сделать, чтобы описание появилось?
1 ответ
Решение
Атрибут DescriptonAttribute является атрибутом времени выполнения. Вы можете прикрепить некоторый текст к Enum и получить его позже, чтобы расширить / объяснить смысл для пользователей. Для поддержки VS/Intellisence вы хотите использовать тройные тики для создания сводного блока:
Friend Enum MediaInfoItem As Integer
''' <summary>
''' File Name to be processed
''' </summary>
''' <remarks></remarks>
<Description("File name")> FileName
<Description("File Size")> FileSize
<Description("Running Time")> Duration
...
End Enum
Здесь только FileName будет иметь информацию Intellisence; Описание извлекается с кодом. Они будут отображаться как Const, потому что они есть. MediaInfoItem
будет отображаться как Enum.