Example #1
0
        public ICsClassHierarchy GetDefaultClassHierarchy(string[] assemblies, Type[] parameterParsers)
        {
            SetValuedKey key = new SetValuedKey(assemblies, parameterParsers);

            ICsClassHierarchy ret = null;

            defaultClassHierarchy.TryGetValue(key, out ret);
            if (ret == null)
            {
                ret = new ClassHierarchyImpl(assemblies, parameterParsers);
                defaultClassHierarchy.Add(key, ret);
            }
            return(ret);
        }
Example #2
0
        public void TestObjectInjectWithNames()
        {
            ICsClassHierarchy classH   = TangFactory.GetTang().GetDefaultClassHierarchy();
            IList <INode>     injected = new List <INode>();

            injected.Add(classH.GetNode(typeof(TestSetInjection.Integer)));
            injected.Add(classH.GetNode(typeof(TestSetInjection.Float)));

            IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();

            cb.BindList(typeof(ListOfClasses).AssemblyQualifiedName, injected);

            IInjector i = TangFactory.GetTang().NewInjector(cb.Build());

            i.BindVolatileInstance(GenericType <TestSetInjection.Integer> .Class, new TestSetInjection.Integer(42));
            i.BindVolatileInstance(GenericType <TestSetInjection.Float> .Class, new TestSetInjection.Float(42.0001f));
            IList <INumber> actual = ((PoolListClass)i.GetInstance(typeof(PoolListClass))).Numbers;

            Assert.True(actual.Contains(new TestSetInjection.Integer(42)));
            Assert.True(actual.Contains(new TestSetInjection.Float(42.0001f)));
        }
Example #3
0
        public void TestStringInjectConfigurationBuilder()
        {
            ICsClassHierarchy   classH   = TangFactory.GetTang().GetDefaultClassHierarchy();
            INamedParameterNode np       = (INamedParameterNode)classH.GetNode(typeof(StringList));
            IList <string>      injected = new List <string>();

            injected.Add("hi");
            injected.Add("hello");
            injected.Add("bye");

            IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();

            cb.BindList(np, injected);

            IInjector      i      = TangFactory.GetTang().NewInjector(cb.Build());
            IList <string> actual = ((StringClass)i.GetInstance(typeof(StringClass))).StringList;

            Assert.True(actual.Contains("hi"));
            Assert.True(actual.Contains("hello"));
            Assert.True(actual.Contains("bye"));
            Assert.Equal(actual.Count, 3);
        }
Example #4
0
        public void TestBoolListWithNamedParameter()
        {
            ICsClassHierarchy   classH   = TangFactory.GetTang().GetDefaultClassHierarchy();
            INamedParameterNode np       = (INamedParameterNode)classH.GetNode(typeof(BoolListClass.NamedBoolList));
            IList <string>      injected = new List <string>();

            injected.Add("true");
            injected.Add("false");
            injected.Add("true");

            IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();

            cb.BindList(np, injected);

            IInjector     i = TangFactory.GetTang().NewInjector(cb.Build());
            BoolListClass o = i.GetInstance <BoolListClass>();

            IList <bool> expected = new List <bool>();

            expected.Add(true);
            expected.Add(false);
            expected.Add(true);
            o.Verify(expected);
        }
Example #5
0
        public void TestIntListWithNamedParameter()
        {
            ICsClassHierarchy   classH   = TangFactory.GetTang().GetDefaultClassHierarchy();
            INamedParameterNode np       = (INamedParameterNode)classH.GetNode(typeof(IntListClass.NamedIntList));
            IList <string>      injected = new List <string>();

            injected.Add("1");
            injected.Add("2");
            injected.Add("3");

            IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();

            cb.BindList(np, injected);

            IInjector    i = TangFactory.GetTang().NewInjector(cb.Build());
            IntListClass o = i.GetInstance <IntListClass>();

            IList <int> expected = new List <int>();

            expected.Add(1);
            expected.Add(2);
            expected.Add(3);
            o.Verify(expected);
        }
 public CsConfigurationBuilderImpl(ICsClassHierarchy classHierarchy)
     : base(classHierarchy)
 {
 }
Example #7
0
 public ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy)
 {
     return(new CsConfigurationBuilderImpl(classHierarchy));
 }
 public CsConfigurationBuilderImpl(ICsClassHierarchy classHierarchy)
     : base(classHierarchy)
 {
 }
Example #9
0
 public ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy)
 {
     return new CsConfigurationBuilderImpl(classHierarchy);
 }
Example #10
0
        static readonly InjectionPlan BUILDING = new BuildingInjectionPlan(null); //TODO anonymous class


        public InjectorImpl(IConfiguration c)
        {
            this.configuration  = c;
            this.classHierarchy = (ICsClassHierarchy)c.GetClassHierarchy();
        }
Example #11
0
 public InjectorImpl(IConfiguration c)
 {
     this.configuration = c;
     this.classHierarchy = (ICsClassHierarchy)c.GetClassHierarchy();
 }