我剛從Ninject更改爲TinyIoC進行依賴注入,我在構造函數注入時遇到了問題。構造函數注入與TinyIoC
我已成功地簡化它下降到這個片段:
public interface IBar { }
public class Foo
{
public Foo(IBar bar) { }
}
public class Bar : IBar
{
public Bar(string value) { }
}
class Program
{
static void Main(string[] args)
{
var container = TinyIoCContainer.Current;
string value = "test";
container.Register<IBar, Bar>().UsingConstructor(() => new Bar(value));
var foo = container.Resolve<Foo>();
Console.WriteLine(foo.GetType());
}
}
其使得TinyIoCResolutionException與拋出:
"Unable to resolve type: TinyIoCTestApp.Foo"
和異常內是內部異常的鏈:
"Unable to resolve type: TinyIoCTestApp.Bar"
"Unable to resolve type: System.String"
"Unable to resolve type: System.Char[]"
"Value cannot be null.\r\nParameter name: key"
我在使用構造函數的方式有什麼問題嗎jection?我知道我可以打電話
container.Register<IBar, Bar>(new Bar(value));
而且確實工作,但結果是酒吧的全局實例這不是我後。
任何想法?
另外:在共同我使用TinyIoC從GitHub(https://github.com/grumpydev/TinyIoC) – AndrewG 2012-02-08 23:04:16
搞笑,背後TinyIoC的基本原理有很大與的[簡單注射器](http://simpleinjector.codeplex.com)。 – Steven 2012-02-09 08:53:47
@Steven @斯蒂文,我們都被稱爲史蒂文..怪異的:-P – 2012-02-09 09:08:03