Я посещаю какой-то старый код, и есть довольно много событий, объявленных с делегатами вручную, а не с помощью EventHandler , например:
/// <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;
Все хорошо, пока я не использую sandcastle для документирования библиотеки, потому что тогда она не может найти никаких комментариев XML для частного поля Added, которое генерируется объявлением события. Я хочу попытаться разобраться в этом, но я хотел бы либо:
- Получите sandcastle, чтобы игнорировать автоматически сгенерированное приватное поле, не сообщая ему полностью игнорировать все приватные поля
или
- Получение сгенерированных комментариев XML для частного поля
Есть ли способ достичь этого без перефакторинга кода, чтобы он выглядел следующим образом:
/// <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;
}
}