我有一個C#的Web API項目,其結構如圖下圖(項目A) 循環引用問題的項目
在項目A上圖控制器使用項目A的服務,以做實際的工作,服務使用Repository來讀寫數據庫。 所有這些都使用Autofac依賴注入。 例子: 構造控制器,其使用各種服務
public DKMenuController(ITokenService tokenService, IUserService userservice, IDKMenuService dkMenuService)
{
_tokenService = tokenService;
_dkMenuService = dkMenuService;
_userservice = userservice;
}
構造使用底層存儲庫,用於與一個數據庫中的服務的
public DKMenuService(IRepository repository)
{
this._repository = repository;
}
當應用程序啓動如下所述的各種服務被註冊
this.RegisterType<Repository>().As<IRepository>().InstancePerRequest();
this.RegisterType<DKMenuService>().As<IDKMenuService>().InstancePerRequest();
現在我想添加另一個項目(在exa中命名)多個ProjectB),它只是一個類庫,將從ProjectA服務中調用,它將執行一些操作,然後使用ProjectA的存儲庫模式並將數據保存到數據庫中。 問題是,這種設計導致循環引用,2個項目不會編譯。 這裏也存在類似的問題How to solve circular reference? 但是答案並不清楚它是否正確。 任何想法?
有你的圖中沒有循環依賴。你能否澄清一下循環依賴的地方? – Enigmativity
@Enigmativity - 查看標題,2個_projects_(列)確實有一個圓圈。 –
@HenkHolterman - 什麼標題?圖中沒有圈。這是一個有向無環圖。 – Enigmativity