Pergunta

Estou visitando algum código antigo e existem alguns eventos declarados com delegados manualmente, em vez de usar o EventHandleru003CT> , assim:

/// <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;

Tudo bem, até que eu use o Sandcastle para documentar a biblioteca, porque ela não consegue encontrar nenhum comentário XML para o campo adicionado privado que é gerado pela declaração do evento. Eu quero tentar resolver isso, mas o que eu gostaria de fazer é:

  • Faça com que o Sandcastle ignore o campo privado gerado automaticamente sem dizer para ignorar todos os campos privados

ou

  • Obtenha comentários XML gerados para o campo privado

Existe alguma maneira de conseguir isso sem re-formação do código para ser assim:

/// <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;
    }
}
Foi útil?

Solução

Embora abaixo do ideal, encontrei uma maneira de contornar isso, que deveria colocar manualmente os comentários XML no arquivo que contém documentação no nível de namespace para o projeto, nesse sentido:

<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>

Isso então dá aproximadamente o que eu precisava.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top