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); }); }
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); }
private string AppendInfo(string message) { return(string.Format(TypedFactory.MessageFormat, TypedFactory.Now(), Name, message)); }