Autofac是否支持通過名稱解析服務?或者我必須總是指定一種服務類型?Autofac僅按名稱解析?
我想做的事:
container.ResolveNamed("Plugin"); // or container.TryResolvedNamed("Plugin", out instance);
不
container.ResolvedNamed<ISomeInterface>("Plugin"); // etc
其中 「插件」 是註冊名稱/鍵,不是一個類型。
謝謝!
這沒有意義,除非你想讓它返回'object'。 – SLaks 2012-08-13 22:03:05
其實,這很好,因爲我在Xaml綁定環境中。實際上,它是與Caliburn相關的一個小集成部分,如果這有助於提供更大的上下文。 Caliburn的Bind類有一個方法,試圖通過名稱來解析所選的IoC容器,而不是類型。 – robcecil 2012-08-13 22:09:29
具體而言:Bind.ModelChanged(...)是有問題的方法。它嘗試通過使用以下行的IoC容器進行檢索: target = IoC.GetInstance(null,containerKey); 因此,Caliburn假設提供的IoC風格將支持以這種方式進行檢索。不確定Autofac是否能夠以這種方式工作。 (IoC只是Caliburn源代碼中的一個門面類,它抽象出任何容器的細節......) – robcecil 2012-08-13 22:14:22