1
我有一個接口,它定義了一些方法,我有N個類來實現它。我如何註冊所有加載的程序集中的所有類與autofac?Autofac - 註冊插件
我有一個接口,它定義了一些方法,我有N個類來實現它。我如何註冊所有加載的程序集中的所有類與autofac?Autofac - 註冊插件
您將不得不「知道」包含這些類的程序集,您可以使用Assembly.Load(..)
自己加載它們。
從那裏,很容易註冊類:
var assemblies = new[]{....};
builder.RegisterAssemblyTypes(assemblies)
.Where(t => typeof(IMyInterface).IsAssignableFrom(t))
.As<IMyInterface>();
更新:去註冊的情況下,你可以使用Autofac內置支持類別:
public class MyService
{
private readonly IEnumerable<IMyInterface> _services;
public MyService(IEnumerable<IMyInterface> services)
{
_services = services;
}
public void DoStuffWithServices()
{
foreach(var svc in _services)
{
...
}
}
}
你能給我寫一篇關於如何編寫可擴展調試類的例子,我可以用autofac註冊dinamically?我應該使用模塊嗎?爲什麼? – Stefano 2010-10-21 18:18:36
@Stefano - 嚴肅地說,這個問題根本就沒有意義。它與這個線程有關嗎?如果不是,請創建一個新問題並嘗試解釋您的問題。如果沒有可以理解的問題/場景,我不能也不會給你「codez」。 – 2010-10-21 19:40:13
所以,它真的很簡單...我有N個類實現相同的接口,這些類在不同的程序集...所以我註冊了所有與您的方法找到的類,但我不知道類的名稱,所以如何我能給他們打電話嗎? – Stefano 2010-10-23 16:57:51