[英]Autofac: register an instance of type A, after type A is already registered as type
我有一個PortalEntities
類,它擴展了DbContext
。
我有一個EFGenRepo
類,其類型為PortalEntites
的私有prop context
。 此EFGenRepo
類具有一個構造函數:
public EFGenRepo(PortalEntities entities) { this.context = entities; }
現在,我有一個ClientManager
類,該類具有EFGenRepo
的實例repo
。 請記住,由於repo
的context
道具是私有的,所以我無法訪問它!
現在,我在ClientManager
的方法之一中包含以下代碼:
FKEntityList.Add(new PortalEntities().Set<FKEntity>().Find(FKEntity_id));
這是我收到錯誤消息的地方:
FKEntityList
是使用repo
的find方法構建的,該方法本身使用EFGenRepo
的context
EFGenRepo
。
我這樣使用autofac和已注冊的PortalEntities
,因此可以將其注入控制器中: cb.RegisterType<PortalEntities>().AsSelf().InstancePerRequest();
但是,在我的方法中,我使用了new PortalEntites()
,並且必須以某種方式將其注冊為PortalEntities
類型。 但是我無法正常工作。 我已經嘗試過下面的代碼:
cb.RegisterInstance(new PortalEntities()).AsSelf().SingleInstance();
有人知道如何設置嗎?
在ClientManager類中,不應創建(甚至使用)PortalEntities類。 將數據庫查詢邏輯移到已經具有PortalEntities實例的存儲庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.