访问相同的单例实例并在不需要时销毁它

时间:2019-02-01 01:09:34

标签: c# wpf serialization mvvm singleton

(WPF MVVM)

我有一个需要访问同一实例(遵循Singleton模式)的要求,并且我还想创建/访问上述实例的刷新实例。

所以我要做的是,在需要的时间使用单例模式(针对Model和ViewModel),然后销毁它(通过将实例设置为value,即给Singleton.Instance = null),当我需要重新/刷新时实例以上的版本,因为旧对象已经存储在我的ObservableCollection中。

public sealed class SingletonViewModel
{
   private static SingletonViewModel instance=null;

   private SingletonViewModel ()
   {
   }

   public static SingletonViewModel Instance
   {
     get
     {
        if (instance==null)
        {
            instance = new SingletonViewModel ();
        }
        return instance;
      }
      set
      {
        instance = value;
      }
 }
 //I have an ObservableCollection of the SingletonViewModel class in other class. 
 //I am destroying the above instance by setting the Instance value to null.
  public void Destroy{
   SingletonModel.Instance = null;
   SingletonViewModel .Instance = null;
  }

  public String Header{
    get return SingletonModel.Instance.Header;
    set { SingletonModel.Instance.Header = value}
  }

尽管我在调用Destroy函数后销毁并尝试访问上述实例,但是我的ObservableCollection会使用上述实例的最新值进行更新。

0 个答案:

没有答案