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); }
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))); }
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); }
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); }
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) { }
public ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy) { return(new CsConfigurationBuilderImpl(classHierarchy)); }
public ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy) { return new CsConfigurationBuilderImpl(classHierarchy); }
static readonly InjectionPlan BUILDING = new BuildingInjectionPlan(null); //TODO anonymous class public InjectorImpl(IConfiguration c) { this.configuration = c; this.classHierarchy = (ICsClassHierarchy)c.GetClassHierarchy(); }
public InjectorImpl(IConfiguration c) { this.configuration = c; this.classHierarchy = (ICsClassHierarchy)c.GetClassHierarchy(); }