Задача написания общих функций в C # - PullRequest
0 голосов
/ 10 октября 2018

У меня есть функция со следующей подписью

string[] GetUserRoleIdsWithAccess<TEntity, T>(TEntity entity) where TEntity 
: IEntity<T>, IAclSupported;

Я пытался использовать ее в другой функции, подобной этой

 _aclService.GetUserRoleIdsWithAccess(entity).ToList();

, где сущность определена в функции, как показано ниже:

void PrepareModelUserRoles<TModel, TEntity, T>(TModel model, TEntity entity, bool ignoreAclMappings)
        where TModel : IAclSupportedModel where TEntity : IEntity<T>, IAclSupported

однако я продолжаю получать

The type arguments for method 
'IAclService.GetUserRoleIdsWithAccess<TEntity, T>(TEntity)' cannot be 
inferred from the usage. Try specifying the type arguments explicitly.  

Пожалуйста, что я могу сделать не так.

1 Ответ

0 голосов
/ 10 октября 2018

Это ограничение вывода типа C #.Чтобы это исправить, вы должны явно указать тип, как указано в комментарии к вашему вопросу:

(замените T1 и T2 на правильный тип)

_aclService.GetUserRoleIdsWithAccess<T1, T2>(entity).ToList(); 
...