XML commenti sul delegato dichiarato eventi
-
20-09-2019 - |
Domanda
Io sono in visita da qualche vecchio codice, e ci sono un bel paio di eventi dichiarati con i delegati manualmente piuttosto che usare EventHandler<T>, come questo:
/// <summary>
/// Delegate for event Added
/// </summary>
/// <param name="index">Index of the item</param>
/// <param name="item">The item itself</param>
public delegate void ItemAdded(int index, T item);
/// <summary>
/// Added is raised whenever an item is added to the collection
/// </summary>
public event ItemAdded Added;
Tutto bene, fino a quando vengo da usare sandcastle per documentare la biblioteca, perché poi non riesco a trovare alcun i commenti XML per il privato Aggiunto il campo generato dalla dichiarazione di evento.Voglio provare e ordinare che fuori, ma quello che vorrei fare è:
- Ottenere castelli di sabbia e ignorare la funzione di auto-generato campo privato senza dire che ignora tutti i campi privati interamente
o
- Ottenere i commenti XML generato per il campo privato
C'è qualche modo per ottenere questo risultato, senza re-factoring il codice in questo modo:
/// <summary>
/// Delegate for event <see cref="Added"/>
/// </summary>
/// <param name="index">Index of the item</param>
/// <param name="item">The item itself</param>
public delegate void ItemAdded(int index, T item);
/// <summary>
/// Private storage for the event firing delegate for the <see cref="Added"/> event
/// </summary>
private ItemAdded _added;
/// <summary>
/// Added is raised whenever an item is added to the collection
/// </summary>
public event ItemAdded Added
{
add
{
_added += value;
}
remove
{
_added -= value;
}
}
Soluzione
Anche se sub-ottimale, ho trovato un modo per aggirare questo, che era di mettere manualmente i commenti XML nel file che contiene spazio dei nomi a livello di documentazione per il progetto, lungo queste linee:
<member name="F:myCompany.Common.Collections.Generic.EventableCollection`1.Added">
<summary>
Auto-generated backing field for the <see cref="E:myCompany.Common.Collections.Generic.EventableSortedList`1.Added">Added</see> event
</summary>
</member>
Quindi, questo dà circa quello che mi serviva.