我在一个工厂类中使用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用在哪里? –