我在一個工廠類中使用Castle.Windsor來創建所需類的實例。 您可以在下面找到示例。Castle.Windsor代碼審查
public class MyFactory : IDisposable
{
protected readonly IKernel Kernel;
protected MyFactory(IKernel kernel)
{
Contract.Requires<ArgumentNullException>(
kernel.NotNull(),
"'kernel' parameter must be initialized.");
Kernel = kernel;
}
public IMyType Create(long param1, long param2)
{
return Kernel.Resolve<IMyType>(
new { numberOfRows, numberOfCells });
}
public void Dispose()
{
DisposeManagedResources();
}
protected virtual void DisposeManagedResources()
{
Kernel.Dispose();
}
}
- 我不知道,我需要的IDisposable這裏...應該怎麼處理內核MyFactory實例脫手後吧?
- 我不知道IKernel(在構造函數中)是解決Create方法中IMyType的最佳方法。我猜,有人可以建議更優雅的版本:)
還有其他想法嗎?
謝謝提前。
嗯..我認爲ServiceLocator可以幫助我... –
爲什麼你這樣做? MyFactory用在哪裏? –