我有一個使用SS(Great framework !!)的項目。 它是一個Rest API。我在提供接口的相同解決方案中引用了其他項目(我在VS2012中執行此操作)。我也在實現此接口的同一解決方案中擁有第三個項目。讓我們把這些項目:ServiceStack IoC DI Design解決單獨項目中的問題
WebAPI
Interfaces
Engine
的WebAPI引用接口和引擎。引擎參考接口
一切都很好。
我在appHost(的WebAPI)中使用IOC來註冊引擎的接口,並且這也適用。
我的問題是我的引擎需要訪問Ormlite數據庫。我已經將ServiceStatck.OrmLight.Mysql引用添加到Engine,但引用在Engine構造函數中引用時爲空。
public Engine()
{
using (var db = DbConnectionFactory.OpenDbConnection())
{
//do db operations
}
}
我可以從Webapi訪問查找數據庫。我如何通知數據庫的引擎?我似乎在層之間失去了。
我希望這是明確的(考慮)。
您有沒有機會看看[Web Api幫助頁面](http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-框架/使用的Web-API與實體的框架,-part-3)? –
除非我錯過了一些東西 - 那不是我的問題。我的問題是,在我的Engine項目中,我無權訪問容器,因此無法訪問在webAPI的appHost中註冊的Registered DbConnectionFactor。 – Jeff
我不太瞭解SS,但從您的問題看,您似乎試圖在使用IoC的WebApi項目和Engine項目之間創建週期性依賴關係。我認爲你最好將ormLite依賴關係移動到引擎上,並在WebApi配置中保留它的配置。 –