Можно ли дать частям параметра Func<T1, T2,....> xml комментарии для intellisense?
Итак, у меня есть действие, которое принимает обратный вызов и выполняет его. Это выглядит немного так. Могу ли я что-нибудь заполнить в области вопросительного знака (или в другом месте), чтобы документировать детали аргументов, входящих в параметр APICall Func?
/// <summary>
/// Opens Authenticated session to servers using ClientSide SDK's, performs action, closes session
/// </summary>
/// <typeparam name="T">The object to be returned from the authenticated action</typeparam>
/// <param name="credentials">Container for username, password</param>
/// <param name="APICall">?????????????????</param>
///
/// ?????????????????????
/// ?????????????????????
/// ?????????????????????
///
/// <returns>T</returns>
private static T MakeAuthenticatedCall<T> (CredStorage Credentials, Func<string,T> APICALL)
{
AuthenticationManager.Login(Credentials);
T APIResult = APICall(AuthenticationManager.SessionID);
AuthenticationManager.LogOff();
return APIResult;
}
1 ответ
Решение
Вы можете определить свой собственный делегат, чтобы сделать это, а не использовать встроенный Func<T,...>
делегировать.
Тогда вы можете не только дать ему документацию XML, но и дать более понятное имя параметрам.
Например:
/// <summary>Makes an API call.</summary>
/// <typeparam name="T">The type returned by the API call.</typeparam>
/// <param name="param">The parameter passed to the API call.</param>
/// <returns>The value returned by the API call.</returns>
public delegate T ApiCall<T>(string param);
Тогда вы бы использовали это вместо Func<string,T>
в вашем методе:
private static T MakeAuthenticatedCall<T>(CredStorage Credentials, ApiCall<T> APICALL)
{
Возможно, это гораздо лучший способ сделать это, хотя за счет необходимости тратить дополнительное время на определение специального делегата.