コード例 #1
0
        public void TestDelegatingParser()
        {
            ITang tang = TangFactory.GetTang();
            ICsConfigurationBuilder cb = tang.NewConfigurationBuilder(new string[] { }, new IConfiguration[] { }, new Type[] { typeof(TypeParser) });

            ICsConfigurationBuilder cb2 = tang.NewConfigurationBuilder(new IConfiguration[] { cb.Build() });

            cb2.BindNamedParameter <ParseName, ParseableType>(GenericType <ParseName> .Class, "a"); //ParseName : Name<ParseableType>

            ParseableType t = (ParseableType)tang.NewInjector(cb2.Build()).GetNamedInstance(typeof(ParseName));

            Assert.IsTrue(t is ParseTypeA);

            cb2 = tang.NewConfigurationBuilder(cb.Build());
            cb2.BindNamedParameter <ParseNameB, ParseTypeB>(GenericType <ParseNameB> .Class, "b");    //ParseNameB : Name<ParseTypeB : ParseableType>
            cb2.BindNamedParameter <ParseNameA, ParseableType>(GenericType <ParseNameA> .Class, "a"); //ParseNameA : Name<ParseableType>

            tang.NewInjector(cb2.Build()).GetInstance(typeof(NeedsA));
            tang.NewInjector(cb2.Build()).GetInstance(typeof(NeedsB));
        }
コード例 #2
0
 public NeedsA([Parameter(typeof(ParseNameA))] ParseableType a)
 {
     Assert.IsTrue(a is ParseTypeA);
 }