2016-03-01 105 views
0

例如我有IRepository,由Repository與一些攔截器實現。在具體類中調用代理方法的正確方法是什麼?

在攔截器內部,我看到IRepositoryProxy基類型是Object而不是Repository

例如:我解決IRepository並調用GetFunctionalityPurposes, 我要的是調用GetAllFunctionalityPurposes要還緩存/代理。

這不起作用,因爲方法在Repository中調用,但不是IRepositoryProxy

IRepository

FunctionalityPurpose[] GetFunctionalityPurposes(); 
FunctionalityPurpose[] GetAllFunctionalityPurposes() 

[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; 
} 
+0

這將是最好是展示解釋問題的一些代碼。 –

+0

@ L-Three增加了一些代碼來說明問題 – xumix

+0

@PhilDegenhardt耶,看起來像相同 – xumix

回答

相關問題