Как получить значения атрибута 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.

Другие вопросы по тегам