Ejemplo n.º 1
0
 public DryIocMefProvider(
     PluginsConfiguration configuration,
     IMixinProvider mixinProvider,
     Container container)
     : base(mixinProvider, new DryIocResolution(container, configuration))
 {
 }
Ejemplo n.º 2
0
 public AutofacMefProvider(
     PluginsConfiguration configuration,
     IMixinProvider mixinProvider,
     ILifetimeScope container)
     : base(mixinProvider, new AutofacResolution(container, configuration))
 {
 }
Ejemplo n.º 3
0
        protected PluginsProvider(
            IMixinProvider mixinProvider,
            IResolution container)
        {
            Contract.Requires(mixinProvider != null);
            Contract.Requires(container != null);

            this.MixinProvider = mixinProvider;
            this.Container     = container;
        }
Ejemplo n.º 4
0
        /// <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]));
        }
Ejemplo n.º 5
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));
        }