Как расположить переходный разрешенный объект в единстве - PullRequest
0 голосов
/ 12 июня 2018

это мой конструктор:

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

Я определяю класс автомобиля вручную, мой вопрос: как я могу избавиться от объекта автомобиля?у нас есть проблема с утечкой памяти, и мы думаем, что поскольку мы не располагаем этими объектами, это наша проблема.

1 Ответ

0 голосов
/ 12 июня 2018

Если это переходный процесс, не могли бы вы просто утилизировать его при удалении 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.

...