コード例 #1
0
 public CompositionContext()
 {
     //foreach (var mut in Mutators.Get(t)) mut(val);
     Singletons = new Dictionary <Type, object>();
     Factories  = new TypedFactory();
     Factories.Mutate((t, o) => {
         foreach (var mut in Mutators.Get(t))
         {
             mut(o);
         }
     });
     TaggedFactories = new FactoryDictionary <Type, TypedFactory>();
     TaggedFactories.Loader((t) => {
         var fac = new TypedFactory();
         fac.Mutate((t2, o) => {
             foreach (var mut in TaggedMutators.Get(t).Get(t2))
             {
                 mut(o);
             }
         });
         return(fac);
     });
     Mutators = new FactoryDictionary <Type, IList <Action <object> > >();
     Mutators.Loader((t) => new List <Action <object> >());
     TaggedMutators = new FactoryDictionary <Type, FactoryDictionary <Type, IList <Action <object> > > >();
     TaggedMutators.Loader((t) => {
         var muts = new FactoryDictionary <Type, IList <Action <object> > >();
         muts.Loader((t2) => new List <Action <object> >());
         return(muts);
     });
 }
コード例 #2
0
    public static void Main()
    {
        var x = new TypedFactory <Item>();
        BaseFactory <Item> factory = x;

        Item someItem = factory.funcA("I am alive");

        Console.WriteLine(someItem.id);
        Console.WriteLine(factory.funcB("I am alive too", someItem).id);
    }
コード例 #3
0
 private string AppendInfo(string message)
 {
     return(string.Format(TypedFactory.MessageFormat, TypedFactory.Now(), Name, message));
 }