Время жизни синглтона

Я создаю WCF-службу , которая размещается в службе Windows . WCF-служба называется приложением ASP.Net с использованием прокси.

using (WcfServiceRef.MonitorClient proxy = new WcfServiceRef.MonitorClient())
{
    //WCF Service proxy
    proxy.Open();
    proxy.DoSomething();
}

Кроме того, у меня есть класс Singleton DataAdapter , который используется в WCF-сервисе, подобном этому (большую часть времени он просто перенаправляет вызов DataAdapter , чтобы иметь возможность легко изменить реализацию фактического доступа к данным):

DataAdapter.GetInstance().DoSomething();

Мой DataAdapter выглядит так и содержит myData, который должен быть активен:

public static DataAdapter DataAdapterInstance;
    private List<CustomObjects> myData;

    internal static ServiceAdapter GetInstance()
    {
        if (DataAdapterInstance == null)
        {
            DataAdapterInstance = new DataAdapter();
        }
        return DataAdapterInstance;
    }

А вот и то, с чем у меня проблемы: (я не уверен если все, что я здесь пишу, верно)

  • Теоретически служба Windows работает вечно (как и должно). Служба
  • WCF запускается только тогда, когда она вызывается / создается моим прокси-сервером (из asp.net)

Когда мой DataAdapter (содержащий все мои данные) "умирает" ... я спрашиваю здесь, каков срок жизни объекта, когда на самом деле на него нет ссылки. (я бы сказал, что он собирается всякий раз, когда запускается сборщик мусора) - Я думаю, что мой подход не слишком хорош, я был бы признателен за любые предложения о том, как хранить мои данные (предпочтительно без использования базы данных или внешнего файла)

Спасибо, что изучили мою проблему!

5
задан r3try 24 February 2012 в 13:27
поделиться