首页 > 解决方案 > 如何统一处理瞬态解析对象

问题描述

这是我的承包商:

public class Foo
{
    private ICar car;
    public Foo()
    {
        car = CurrentUnityContainer.Container.Resolve<Car>();
    }
    public MyMethod()
    {
        car.DoSomething();
    }
}

我手动解决 Car 类,我的问题是如何处理汽车对象?我们有内存泄漏问题,并认为因为我们没有处理这些对象是我们的问题。

标签: c#unity-container

解决方案


如果它是暂时的,你可以在 Foo 被处理时处理它吗?

public class Foo : IDisposable
{
    private ICar car;
    public Foo()
    {
        car = CurrentUnityContainer.Container.Resolve<Car>();
    }
    public MyMethod()
    {
        car.DoSomething();
    }

    public void Dispose()
    {
        car.Dispose();
    }
}

因为每个决议都应该创建一个新的 Car 实例。


推荐阅读