Autofac - зарегистрировать все Windows Forms - PullRequest
4 голосов
/ 23 июня 2011

Есть ли способ попросить Autofac автоматически зарегистрировать все Windows Forms в моей сборке?Эта функция, скорее всего, будет похожа на возможность поддержки Autofac MVC регистрировать все контроллеры?

Сейчас я делаю:

foreach (var type in Assembly.GetExecutingAssembly().GetTypesSafely().Where(type => type.IsSubclassOf(typeof(Form))))
    builder.RegisterType(type);

Ответы [ 2 ]

6 голосов
/ 23 июня 2011

Вот краткий и приятный способ сделать это:

var assembly = Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(assembly)
    .AssignableTo<Form>();
4 голосов
/ 23 июня 2011

Насколько я знаю, нет встроенного метода для добавления всех форм Win. Но вы можете сделать что-то вроде этого.

var assembly = Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(assembly)
    .Where(type => type.IsSubclassOf(typeof(Form)));
...