Ich habe mich gefragt, ob jemand weiß, wie man einen XML-Kommentar der Schnittstelle mit einer Implementierung verknüpft. Das Problem ist, dass die Basiskommentare zuerst von meiner Benutzeroberfläche stammen sollen. Beispiel:
interface myinterface {
/// <summary>
/// Does something.
/// </summary>
void method1(string foo);
}
und dann ist die Implementierung:
public class myclass : myinterface {
public void method1(string foo) {
//do something...
}
}
Wenn ich jetzt mit der Maus über die Methode schwebe, nachdem ich das Objekt instanziiert habe:
myclass foo = new myclass();
foo.method1("do something");
Wie kann ich die Kommentare im Hover-Popup anzeigen lassen? Gibt es eine Möglichkeit, die Schnittstellenkommentare mit der Implementierung zu verknüpfen? Ich weiß, dass es in Java einen Weg gibt, kann aber keine Lösung für C # finden.
Vielen Dank
c#
.net
visual-studio-2010
u84six
quelle
quelle
Antworten:
Das Verknüpfen von XML-Kommentaren ist meiner Meinung nach nicht möglich, aber Sie können ein Tool wie GhostDoc verwenden, um den XML-Kommentar von Ihrer Schnittstelle / Basisklasse in die Implementierungs- / abgeleitete Klasse zu kopieren.
quelle
ALT+RETURN
Sie und Sie können "Kommentare von der Basis kopieren". ReSharper überrascht mich jeden Tag! :-)XMLDoc definiert ein Tag
<include />
zum Einfügen von Kommentaren aus einer anderen Datei, die es seit Visual Studio 2003 gibt. Die größte Einschränkung ist, dass die referenzierte Datei eine Datei sein sollte, die nur XMLDoc-Dokumentation enthält, keine andere Quelldatei.Weitere Informationen finden Sie auf der MSDN-Seite .
quelle
Wenn Sie GhostDoc verwenden , hilft dies sehr beim "Transportieren" der Dokumentation von den Schnittstellen zum Implementierungscode.
quelle
///
die Methode in der implementierenden Klasse ein.Sieht so
<inheritdoc/>
aus, als würde es bald native Unterstützung geben.Siehe https://github.com/dotnet/csharplang/issues/313
quelle
http://blog.x-tensive.com/2008/02/fixml.html
Es ist ein Postprozessor, der bestimmte zusätzliche Optionen hat, wenn das ursprüngliche Dokumentationssystem fehlt.
Von der Website:
Kurze Zusammenfassung:
FiXml ist ein Postprozessor der XML-Dokumentation, die von C # \ Visual Basic.Net erstellt wurde. Es werden einige der ärgerlichsten Fälle im Zusammenhang mit dem Schreiben von XML-Dokumentation in diesen Sprachen behandelt: - Keine Unterstützung für das Erben der Dokumentation von der Basisklasse oder der Schnittstelle. Das heißt, eine Dokumentation für ein überschriebenes Mitglied sollte von Grund auf neu geschrieben werden, obwohl es normalerweise durchaus wünschenswert ist, zumindest einen Teil davon zu erben. - Keine Unterstützung für das Einfügen häufig verwendeter Dokumentationsvorlagen, z. B. "Dieser Typ ist Singleton - verwenden Sie seine Eigenschaft, um die einzige Instanz davon abzurufen." Oder sogar "Initialisiert eine neue Klasseninstanz".
quelle
Ich habe ein Befehlszeilentool erstellt, um die XML-Dokumentationsdateien nachzubearbeiten und Unterstützung für das Tag <inheritdoc /> hinzuzufügen.
Es hilft zwar nicht mit Intellisense im Quellcode, ermöglicht jedoch die Aufnahme der geänderten XML-Dokumentationsdateien in ein NuGet-Paket und funktioniert daher mit Intellisense in NuGet-Paketen, auf die verwiesen wird.
Weitere Informationen finden Sie unter www.inheritdoc.io (kostenlose Version verfügbar).
quelle