public static IList <T> ResolveNameTypeServices <T>(this IServiceContainer container) { if (container == null) { throw new ArgumentNullException(nameof(container)); } Func <Object, Boolean> predicate = key => { NameTypeKey nameTypeKey = key as NameTypeKey; return(nameTypeKey != null && typeof(T).IsAssignableFrom(nameTypeKey.Type)); }; return(container.Resolve <T>(predicate)); }
public static Boolean AddGeneratorComponent(this IDictionary <Object, IContainerEntry> entries, String name, Type type, CreateFunc <Object> generator) { if (entries == null) { throw new ArgumentNullException(nameof(entries)); } if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (type == null) { throw new ArgumentNullException(nameof(type)); } if (generator == null) { throw new ArgumentNullException(nameof(generator)); } NameTypeKey key = new NameTypeKey(name, type); return(AddComponent(entries, key, new GeneratorContainerEntry <Object>(generator))); }
public static Boolean AddSimpleValueComponent(this IDictionary <Object, IContainerEntry> entries, String name, Type type, Object value) { if (entries == null) { throw new ArgumentNullException(nameof(entries)); } if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (type == null) { throw new ArgumentNullException(nameof(type)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } NameTypeKey key = new NameTypeKey(name, type); return(AddComponent(entries, key, new SimpleContainerEntry <Object>(value))); }