我在一个工厂类中使用 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 的最佳方法。我想,有人可以建议一个更优雅的版本:)
还有其他想法吗?
谢谢你提前。