using System; using System.Collections.Generic; using ScriptCs.Contracts; namespace ScriptCs { public class ScriptPackManager : IScriptPackManager { private IDictionary _contexts = new Dictionary(); public ScriptPackManager(IEnumerable contexts) { Guard.AgainstNullArgument("contexts", contexts); foreach (var context in contexts) { _contexts.Add(context.GetType(), context); } } public TContext Get() where TContext : IScriptPackContext { return (TContext) _contexts[typeof (TContext)]; } } }