我在vb.net 2010下使用Autofac 2.4.5.724。我有幾個沒有默認構造函數的類,我想autofac解決,我想用RegisterAssemblyTypes註冊它們(不註冊類逐個)。可能嗎?Autofac RegisterAssemblyTypes沒有默認構造函數的類
我的界面是這樣的:
Namespace Repo
Public Interface IPeople
Function All() As IList(Of RCO.People)
End Interface
End Namespace
實現是這樣的:
Dim builder = New ContainerBuilder
builder.Register(
Function(x) New MyLib.Repo.People("Data Source=localhost...")
).As(Of MyLib.Repo.IPeople)()
Dim container = builder.Build
Dim peep = container.Resolve(Of MyLib.Repo.IPeople)()
但我:
Namespace Repo
Public Class People
Inherits Base
Implements IPeople
Public Sub New(ByVal cs As String)
MyBase.New(cs)
End Sub
Public Function All() As IList(Of RCO.People) Implements IPeople.All
...
End Function
End Class
End Namespace
我可以一個個像這樣登記類不想一個一個地註冊課程,我想用autofac來掃描我的程序集:
Dim builder = New ContainerBuilder
builder.RegisterAssemblyTypes(Reflection.Assembly.Load("MyLib")).Where(
Function(x) x.Namespace = "Repo").AsImplementedInterfaces() ...what else?...
Dim container = builder.Build
Dim peeprepo = container.Resolve(Of ReportCenterLib.Repo.IPeople)()
或者,我可以在解析期間放置構造函數參數嗎?
Dim peeprepo = container.Resolve(Of ReportCenterLib.Repo.IPeople)(...here?...)