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;
    }
}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top