using System.Collections.Generic;
using Microsoft.Practices.Unity;
public static void Main()
var container = new UnityContainer();
var type = typeof(IPlugin<Imodel>);
typeof(ITest).Assembly.GetTypes()
.Where(p => type.IsAssignableFrom(p) ).ToList().ForEach(fe=> {
container.RegisterType(typeof(IPlugin<Imodel>), fe, fe.FullName);
Console.WriteLine(fe.FullName);
container.RegisterType<ITest,Test>();
var test = container.Resolve<ITest>();
IPlugin<Imodel>[] models;
public Test(IPlugin<Imodel>[] lp2) {
foreach (var item in models){
class DefPlugin : IPlugin<Imodel> {
class ZisPlugin : IPlugin<Zis> {
class DvPlugin : IPlugin<Dv> {