2011-06-22 52 views
3

有沒有辦法讓Autofac自動註冊我的程序集中的所有Windows窗體?這個特性很可能類似於Autofac MVC支持的註冊所有控制器的能力?Autofac - 註冊所有Windows窗體

現在,我做的:

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

回答

3

據我所知,沒有一個內置的方法來添加全贏形式。但你可以做這樣的事情。

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

完美。我爲你添加了一個額外的右括號。 :-) –

6

下面是做這件事的簡短而親切的方式:

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