Комментарии Документации XML с Интерфейсами и [закрытым] классом (классами) с реализацией

Я бы ответил на вопрос Уиллиса и предложил бы вам точно сопоставить каждый из компонентов строки. Однако, если это не достаточно гибко (то есть вы хотите иметь возможность выполнять частичное совпадение в пределах каждого компонента), я бы рекомендовал настроить зеркальный механизм ElasticSearch, особенно учитывая, сколько у вас записей. MongoDB на самом деле не предназначен для эффективного поиска текста произвольной формы.

Мой личный опыт заключался в том, что при примерно 10 миллионах записей, даже при индексировании объединенного строкового поля, поиск в произвольной форме занимал> 30 секунд на запрос, даже при достаточном объеме ОЗУ для хранения (довольно большого) индекса. Поскольку я пытался выполнить автозаполнение в реальном времени для текстового поля, это не сработало бы: -)

ElasticSearch имеет несколько решений для автоматической репликации данных из mongodb в его собственную базу данных, поэтому я обнаружил, что после установки все прошло, все прошло довольно гладко. Я использую monstache ( https://github.com/rwynn/monstache ), но есть и другие. Я понимаю, что это не совсем то, о чем вы просили, но я прошел через мучительный процесс, пытаясь оптимизировать mongodb для поиска текста произвольной формы, который не длился вечно и в конечном итоге сдался. Если это будет общий запрос и вам нужна приличная производительность, я настоятельно рекомендую рассмотреть что-то вроде ElasticSearch, которое оптимизировано для него.

7
задан Richard Everett 15 April 2009 в 08:59
поделиться

4 ответа

Похоже, что нет никакой автодокументации в Sandcastle. Построитель файлов справки Sandcastle , тем не менее, реализует пользовательский тег наследия.

С сайта SHFB:

Поддержка включена для тег <наследник />, который позволяет вам наследовать документацию от базы типы / члены. Это реализовано через автономный инструмент, так что он также может быть используется другими сторонними инструментами и строить скрипты. Этот инструмент обеспечивает функции, помимо тех, которые находятся в Компонент сборки поставляется с Sandcastle.

Второе обновление: в соответствии с данным рабочим пунктом , «поддержка» Sandcastle дляирателя - через инструмент SHFB. Суть в том, что SHFB решает вашу проблему.

1
ответ дан 7 December 2019 в 10:07
поделиться

Инструмент, такой как GhostDoc , может генерировать документацию по реализующим классам, когда вы используете его Сочетание клавиш. Это не совсем автоматически, но может помочь предотвратить слишком большое вставление копий.

Возможно, это можно автоматизировать с помощью сценария.

1
ответ дан 7 December 2019 в 10:07
поделиться

AtomineerUtils will auto-generate comments for you, and it picks up existing documentation from overloads and overridden base class, saving you loads of hassle in duplicating the information where it's needed.

http://www.atomineer.com/AtomineerUtils.html

1
ответ дан 7 December 2019 в 10:07
поделиться

I have a better answer: FiXml.

Cloning comments with GhostDoc \ AtomineerUtils is certainly working approach, but it has significant disadvantages, e.g.:

  • When the original comment is changed (which frequently happens during development), its clone is not.
  • You're producing huge amount of duplicates. If you're using any source code analysis tools (e.g. Duplicate Finder in Team City), it will find mainly your comments.

As it was mentioned, there is tag in Sandcastle, but it has few disadvantages in comparison to FiXml:

  • Sandcastle produces compiled HTML help files - it doesn't modify .xml files containing extracted XML comments. But these files are used by many tools, including .NET Reflector and class browser \ IntelliSense in Visual Studio .NET. So if you use just Sandcastle, you won't see inherited documentation there.
  • Sandcastle's implementation is less powerful. E.g. the is no .

See Sandcastle's description for further details.

Short description of FiXml: it is a post-processor of XML documentation produced by C# \ Visual Basic .Net. It is implemented as MSBuild task, so it's quite easy to integrate it to any project. It addresses few annoying cases related to writing XML documentation in these languages:

  • No support for inheriting the documentation from base class or interface. I.e. a documentation for any overridden member should be written from scratch, although normally it’s quite desirable to inherit at least the part of it.
  • No support for insertion of commonly used documentation templates, such as “This type is singleton - use its property to get the only instance of it.”, or even “Initializes a new instance of class.”

To solve mentioned issues, the following additional XML tags are provided:

  • , tags
  • attribute in tag.

Here is its web page and download page.

3
ответ дан 7 December 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: