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