Правильное использование встроенной документации XML для производных классов? - PullRequest
1 голос
/ 11 мая 2011

Хотя мне кажется, что я понимаю, почему встроенная XML-документация (т. Е. Использование трех косых черт - ///) не работает для меня, я хотел бы получить некоторые рекомендации о том, как обойти мою «проблему».

У меня есть интерфейс и два производных класса. Один производный класс предназначен для симуляции, а другой - для общения с реальным оборудованием.

Весьма вероятно, что аппаратная реализация сделает что-то особенное, что не нужно делать симулятору. У меня есть документация XML для аппаратных методов, а не для симулятора. Однако при наведении указателя мыши на имя метода я вообще не получаю документацию во всплывающей подсказке, возможно потому, что документы XML не связаны с интерфейсом.

Это, безусловно, имеет смысл, и я планирую вместо этого поместить свою документацию в интерфейс и жить с ней. Мне все еще интересно, как ... как все это делают? Есть ли какой-то волшебный способ заставить всплывающую подсказку объединять все действительные документы XML? Другими словами, поскольку компилятор не знает, какой производный класс используется, есть ли способ показать документы XML для всех классов, которые реализуют этот интерфейс?

Ответы [ 2 ]

0 голосов
/ 11 мая 2011

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

0 голосов
/ 11 мая 2011

Поскольку вы программируете для интерфейса, нет способа пройти через документацию XML из реализации.Разделение означает, что две «стороны» не знают друг о друге.Как вы сказали, у вас может быть две разные реализации этого интерфейса.В этом случае у вас будет конфликт.Это не имеет большого значения для двоих, но как насчет 200?Кроме того, смысл использования интерфейса в том, что вам все равно, как он реализован.Вы знаете, что при вызове используйте интерфейс, реализация будет следовать контракту.Используйте XML-комментарии для интерфейса, чтобы описать контракт, а не реализацию контракта.

Я чувствую вашу боль в этом, и я не уверен, что есть лучшее решение.

...