public DryIocMefProvider( PluginsConfiguration configuration, IMixinProvider mixinProvider, Container container) : base(mixinProvider, new DryIocResolution(container, configuration)) { }
public AutofacMefProvider( PluginsConfiguration configuration, IMixinProvider mixinProvider, ILifetimeScope container) : base(mixinProvider, new AutofacResolution(container, configuration)) { }
protected PluginsProvider( IMixinProvider mixinProvider, IResolution container) { Contract.Requires(mixinProvider != null); Contract.Requires(container != null); this.MixinProvider = mixinProvider; this.Container = container; }
/// <summary> /// Create mixin for target class using constructor arguments. /// Usefull for abstract classes. /// </summary> /// <typeparam name="TMixin">target instance</typeparam> /// <param name="provider">mixin service</param> /// <param name="type">target class</param> /// <param name="args">constructor arguments</param> /// <returns>object instance</returns> public static TMixin Create <TMixin>(this IMixinProvider provider, Type type, object[] args) { Contract.Requires(provider != null); return((TMixin)provider.Create(type, args, new object[0])); }
/// <summary> /// Create mixin for target class using provided instances and constructor arguments. /// </summary> /// <typeparam name="TMixin">target class</typeparam> /// <param name="provider">mixin service</param> /// <param name="implementations">additional mixins</param> /// <param name="args">constructor arguments</param> /// <returns>object instance with merged mixins</returns> public static TMixin Create <TMixin>(this IMixinProvider provider, IEnumerable <object> implementations, params object[] args) { Contract.Requires(provider != null); return((TMixin)provider.Create(typeof(TMixin), args, implementations)); }