我使用 Jon Wagner 的 Insight.Database 作為我的微型 ORM,這意味著我的(數(shù)據(jù)庫)接口沒有具體的實現(xiàn)。我試圖將其中一個接口注入我的 Prism 7 MainWindowViewModel,只是為了查看數(shù)據(jù)庫是否存在(在這個階段 - 顯然,我稍后會做更多)。但是,要么是新的 Unity 搞砸了,要么是 Prism 不喜歡我的做法。在過去只有 Unity 的日子里,使用以下代碼,這并不是一件令人愉快但相當不錯的事情 -var conn = ConfigurationManager.ConnectionStrings["default"];container.RegisterType<IConnection>(new InjectionFactory(con => conn.AsParallel<IConnection>());但這是不同的。我承認我是 Prism 的新手,但 IContainerRegistry 上沒有任何東西具有此功能。通過使用var container = containerRegistry.GetContainer();我可以獲得基礎(chǔ)容器,但這也發(fā)生了變化,它遵循其前身的標準,避免使用帶有示例的體面文檔,所以我最好的近似是這個,它至少可以編譯。container.RegisterInstance(typeof(IConnection), "DbConnection", new InjectionFactory(con => connection.AsParallel<IConnection>()), null);這編譯,但它絕對不注入。當 AutoWireUp 嘗試實例化 MainWindowViewModel 時,我遇到了運行時錯誤。任何人都可以指出答案或有用的資源嗎?
1 回答

胡說叔叔
TA貢獻1804條經(jīng)驗 獲得超8個贊
通常,繼續(xù)胡鬧已經(jīng)解決了這個問題。
首先,確保 App.xaml.cs 包含這個
using Unity;
這使我們可以重新訪問 RegisterType<T>()。
從那里開始,這就是所需要的。
container.RegisterType<IConnection>(new InjectionFactory(s => connection.AsParallel<IConnection>()));
抱歉打擾你們了,伙計們。現(xiàn)在好了。
我已經(jīng)發(fā)布了答案,因為我懷疑我會是最后一個遇到這個問題的人,但我們生活在希望之中。
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消