2013-02-26 2 views
1

В настоящее время я разрабатываю систему, которая должна отображать некоторые из ее метаданных/документации во время выполнения. Я знаю, что есть методы использования XML-комментариев и возвращения этих данных в приложение с помощью методов расширения Reflection.Использование атрибута DescriptionAttribute в объектах домена

Я считаю, что легче использовать атрибут описания из пространства имен System.ComponentModel (но находится в сборке системы). Таким образом, я и другие разработчики могли бы использовать регулярное отражение, чтобы получить описание полей. Я скорее использую это, чем использование настраиваемого атрибута. Каковы недостатки этого подхода?

Пример:

public Customer 
{ 
    public int Id { get; set; } 
    [Description("The common friendly name used for the customer.")] 
    public string Name { get; set; } 
    [Description("The name used for this customer in the existing Oracle ERP system.")] 
    public string ErpName { get; set; } 
} 
+1

Это скорее заявление, не вопрос. Что ты спрашиваешь? – Romoku

+0

попробуйте http://codereview.stackexchange.com/ вместо –

ответ

1

я делаю одно и то же и не возникало никаких недостатков (с ERP программного обеспечения не менее!). Одна вещь, которую вы можете учесть в своей ситуации в зависимости от вашей архитектуры, заключается в том, что многие инструменты документации прямо или косвенно основаны на комментариях XML. Вероятно, они не смогут получить атрибуты описания. Но в нашей архитектуре код атрибута описания на самом деле не является основным/источником документации. У нас есть база данных MetaData, которая определяет и описывает каждое свойство. Мы можем генерировать комментарии XML и Описание атрибутов из того же источника. Фактически в нашем случае мы вообще не генерируем комментарии XML, а вместо этого напрямую генерируем XML-файл, который обычно генерируется непосредственно XML-комментариями. Это файл, используемый инструментами документации, которые мы используем. Вероятно, вы могли бы написать простую утилиту для извлечения атрибутов описания в похожий файл XML, если вы хотите использовать инструменты документации, которые полагаются на файл xml, выводимый комментариями xml, если он не может принять атрибут Describiton напрямую.

+0

Хорошие мысли +1. Одна вещь, которая все еще «пахнет» мне о комментариях и атрибутах XML, заключается в том, что вам необходимо обновить исходные файлы C# для исправления документации. Кажется, вы справляетесь с этим внешним источником (базой данных). Какие негативы вы столкнулись с вашим подходом? – BuddyJoe

+0

Без негативов. Напротив, использование «мета-базы данных» предоставило нам много неожиданных преимуществ (чем больше кода вы можете включать и генерировать из метаданных, тем больше контроля вы должны массово изменять и запрашивать). Когда мы хотим проводить массовый поиск или изменение определенных шаблонов или типов объектов, это часто вопрос SQL-запроса. Вы просто должны быть вдумчивыми при разработке своей метаданных и генераторов кода вокруг нее. Частичные классы очень полезны для генерации кода. Если мне действительно придётся думать о недостатке, управление исходным кодом является менее идеальным для данных таблицы базы данных. – BlueMonkMN

+0

Я использовал частичные классы с генерацией кода раньше. Используется для генерации C# и Java, соответствующих DTO. Это превосходно. Благодарю. Будет обсужден с моей командой, и мы сделаем решение vs database на следующей неделе. Хорошее понимание. – BuddyJoe

Смежные вопросы