Например, у меня есть IRepository
, Реализовано Repository
с некоторыми перехватчиками.Каков правильный способ вызова прокси-метода внутри конкретного класса?
Внутри перехватчика я вижу, что IRepositoryProxy
базовый тип Object
и не Repository
.
Например: постановляю IRepository
и вызвать GetFunctionalityPurposes
, то, что я хочу, это призыв к GetAllFunctionalityPurposes
быть также кэшируются/проксированном.
Это не работает, поскольку методы вызываются в Repository
, но не IRepositoryProxy
.
IRepository
FunctionalityPurpose[] GetFunctionalityPurposes();
FunctionalityPurpose[] GetAllFunctionalityPurposes()
Repository
[Cached("Tender")]
public virtual FunctionalityPurpose[] GetFunctionalityPurposes()
{
var model = GetAllFunctionalityPurposes()
.Where(r => !r.IsHidden && !r.GroupId.HasValue);
return model;
}
[Cached("Tender", "FunctionalityPurpose")]
public virtual FunctionalityPurpose[] GetAllFunctionalityPurposes()
{
var model = UnitOfWork.GetSet<Model>().Select(f => f.FunctionalityPurpose)
.Distinct().OrderBy(r => r.Id).ToArray();
return model;
}
Это было бы лучше, чтобы вы показали код, который объясняет проблему. –
@ L-Three Добавлен код для иллюстрации проблемы – xumix
@PhilDegenhardt да, похоже на то же самое – xumix