/// <summary> /// Factory scoped to a tagging context type /// </summary> /// <typeparam name="TMeta"></typeparam> /// <typeparam name="TFac"></typeparam> /// <param name="factory"></param> public void Factory <TTag, TFac>(Func <TFac> factory) where TTag : IContextTag { TaggedFactories.Get(typeof(TTag)).Add(factory); }
public void Tag <TTag>() where TTag : IContextTag { // Simply ensure the tagged factory is generated TaggedFactories.Get(typeof(TTag)); }
public void Remove <TTag, TFac>() where TTag : IContextTag { TaggedFactories.Get(typeof(TTag)).Remove <TFac>(); }
public bool Has <TTag>() where TTag : IContextTag { return(TaggedFactories.Has(typeof(TTag))); }
public TFac Get <TTag, TFac>() where TTag : IContextTag { return(TaggedFactories.Get(typeof(TTag)).Get <TFac>()); }