C# Language
Komentarze do dokumentacji XML
Szukaj…
Uwagi
Czasami musisz stworzyć rozszerzoną dokumentację tekstową z twoich komentarzy xml. Niestety nie ma na to standardowego sposobu .
Istnieją jednak osobne projekty, których można użyć w tym przypadku:
Prosta adnotacja do metody
Komentarze do dokumentacji są umieszczane bezpośrednio nad opisaną metodą lub klasą. Zaczynają się od trzech ukośników ///
i pozwalają na przechowywanie meta informacji przez XML.
/// <summary>
/// Bar method description
/// </summary>
public void Bar()
{
}
Informacje wewnątrz tagów mogą być wykorzystywane przez Visual Studio i inne narzędzia do świadczenia usług, takich jak IntelliSense:
Zobacz także listę typowych znaczników dokumentacji firmy Microsoft .
Komentarze dotyczące interfejsu i dokumentacji klas
/// <summary>
/// This interface can do Foo
/// </summary>
public interface ICanDoFoo
{
// ...
}
/// <summary>
/// This Bar class implements ICanDoFoo interface
/// </summary>
public class Bar : ICanDoFoo
{
// ...
}
Wynik
Podsumowanie interfejsu
Podsumowanie zajęć
Dokumentacja metody komentarza z parametrami i zwraca elementy
/// <summary>
/// Returns the data for the specified ID and timestamp.
/// </summary>
/// <param name="id">The ID for which to get data. </param>
/// <param name="time">The DateTime for which to get data. </param>
/// <returns>A DataClass instance with the result. </returns>
public DataClass GetData(int id, DateTime time)
{
// ...
}
IntelliSense pokazuje opis każdego parametru:
Wskazówka: Jeśli Intellisense nie wyświetla się w Visual Studio, usuń pierwszy nawias lub przecinek, a następnie wpisz go ponownie.
Generowanie XML na podstawie komentarzy do dokumentacji
Aby wygenerować plik dokumentacji XML z komentarzy dokumentacji w kodzie, użyj opcji /doc
z kompilatorem csc.exe
C #.
W Visual Studio 2013/2015, W projekcie -> Właściwości -> Kompilacja -> Dane wyjściowe zaznacz pole wyboru XML documentation file
:
Podczas budowania projektu kompilator wygeneruje plik XML o nazwie odpowiadającej nazwie projektu (np. XMLDocumentation.dll
-> XMLDocumentation.xml
).
Gdy używasz zestawu w innym projekcie, upewnij się, że plik XML znajduje się w tym samym katalogu, do którego odwołuje się biblioteka DLL.
Ten przykład:
/// <summary>
/// Data class description
/// </summary>
public class DataClass
{
/// <summary>
/// Name property description
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// Foo function
/// </summary>
public class Foo
{
/// <summary>
/// This method returning some data
/// </summary>
/// <param name="id">Id parameter</param>
/// <param name="time">Time parameter</param>
/// <returns>Data will be returned</returns>
public DataClass GetData(int id, DateTime time)
{
return new DataClass();
}
}
Tworzy ten plik XML w kompilacji:
<?xml version="1.0"?>
<doc>
<assembly>
<name>XMLDocumentation</name>
</assembly>
<members>
<member name="T:XMLDocumentation.DataClass">
<summary>
Data class description
</summary>
</member>
<member name="P:XMLDocumentation.DataClass.Name">
<summary>
Name property description
</summary>
</member>
<member name="T:XMLDocumentation.Foo">
<summary>
Foo function
</summary>
</member>
<member name="M:XMLDocumentation.Foo.GetData(System.Int32,System.DateTime)">
<summary>
This method returning some data
</summary>
<param name="id">Id parameter</param>
<param name="time">Time parameter</param>
<returns>Data will be returned</returns>
</member>
</members>
</doc>
Odwoływanie się do innej klasy w dokumentacji
Tag <see>
może być użyty do połączenia z inną klasą. Zawiera on element cref
który powinien zawierać nazwę klasy, do której należy się odwoływać. Visual Studio zapewni Intellsense podczas pisania tego znacznika, a takie odniesienia będą przetwarzane również podczas zmiany nazwy klasy, do której istnieje odniesienie.
/// <summary>
/// You might also want to check out <see cref="SomeOtherClass"/>.
/// </summary>
public class SomeClass
{
}
W wyskakujących oknach Intellisense programu Visual Studio takie odniesienia będą również wyświetlane w kolorze w tekście.
Aby odwołać się do klasy ogólnej, użyj czegoś podobnego do następującego:
/// <summary>
/// An enhanced version of <see cref="List{T}"/>.
/// </summary>
public class SomeGenericClass<T>
{
}