Injecting arrays with Unity

后端 未结 3 1576
被撕碎了的回忆
被撕碎了的回忆 2020-12-17 20:19

My goal is to constructor inject an array of objects implementing an interface.

The following is the way I currently have it.

Container

        .Reg         


        
3条回答
  •  清歌不尽
    2020-12-17 21:15

    If you have a slightly more complicated scenario where different arrays of values have to be used in different places, then you can use ResolvedArrayParameter, e.g.

    container.RegisterType("foo");
    container.RegisterType("bar");
    container.RegisterType("baz");
    container.RegisterType("boo");
    
    container.RegisterType("c1",
        new InjectionConstructor(
            new ResolvedArrayParameter(
                new ResolvedParameter("foo"),
                new ResolvedParameter("bar"))));
    
    container.RegisterType("c2",
        new InjectionConstructor(
            new ResolvedArrayParameter(
                new ResolvedParameter("baz"),
                new ResolvedParameter("boo"))));
    
    var c1 = container.Resolve("c1");
    var c1 = container.Resolve("c2");
    

提交回复
热议问题