假設我們有以下兩個類,我們如何監聽錯誤,如果發生錯誤,重新創建單例?我已經將以下代碼放在一起,但想知道是否有安全引發錯誤的模式,處理對象並自動重新創建它?引發錯誤,處置對象並重新創建它
`
static void Main(string[] args)
{
MyFirstClass.Instance.SayHello();
}
}
class MySecondClass
{
public int ID { get; set; }
public void SayHelloFromSecondClass()
{
Console.WriteLine("Say Hello From Second Class");
}
public MySecondClass(int id)
{
ID = id;
}
}
public sealed class MyFirstClass
{
private static readonly MyFirstClass instance = new MyFirstClass();
private static MySecondClass msc;
public event EventHandler ErrorOccuredEvent;
private MyFirstClass() { }
public static MyFirstClass Instance
{
get
{
msc = new MySecondClass(id: 1);
return instance;
}
}
public void SayHello()
{
Console.WriteLine("Hello World...");
}
static void ErrorOccured(object sender, EventArgs e)
{
Console.WriteLine("Oops");
msc = null;
Thread.Sleep(5000);
GC.Collect();
msc = new MySecondClass(id: 2);
}
}
`
'msc'與'instance'的關係如何?這樣的代碼似乎沒有多大意義。你能更具體地說明你想要做什麼嗎?你真正的目標是什麼? –
@ OlivierJacot-Descombes謝謝,我有兩個目標:1)我希望'EntryClass'是一個單獨的,只創建一個單獨的'ServiceClass'實例,現在這裏的問題是是否刪除' EntryClass'並使'ServiceClass'成爲一個Singleton本身? 2)我想讓「EntryClass」監聽錯誤,如果發生錯誤,自動處理ServiceClass並重新創建它。 –