我正在访问一些旧代码,并且手动向代理人声明了很多事件而不是使用EventHandler< T>,如下所示:
/// <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注释。我想尝试解决这个问题,但我想做的是:
或
有没有办法实现这一点,而无需将代码重新分解为:
/// <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;
}
}
答案 0 :(得分:0)
虽然不是最佳的,但我找到了解决这个问题的方法,即将XML注释手动放入包含项目命名空间级文档的文件中,其中包括:
<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>
然后大致给出了我需要的东西。