Autofac-注册所有Windows窗体

本文关键字:Windows 窗体 注册 Autofac- | 更新日期: 2023-09-27 18:00:09

有没有办法让Autofac自动注册程序集中的所有Windows窗体?这个功能很可能类似于Autofac MVC支持注册所有控制器的能力?

现在,我做:

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

Autofac-注册所有Windows窗体

这里有一个简单而甜蜜的方法:

var assembly = Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(assembly)
    .AssignableTo<Form>();

据我所知,没有一个内置方法可以添加所有Win Forms。但你可以这样做。

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