シングルトンを持つクラス「BaseClient」から継承し、継承されたクラスでも基本クラスシングルトンの基本メンバーの同じインスタンスを使用できるようにする方法を知りたいです。
public class BaseClient
{
protected string _url;
protected string _username;
protected string _password;
private static BaseClient _instance;
private static readonly object padlock = new object();
public static BaseClient Instance
{
get
{
lock (padlock)
{
if (_instance == null)
{
_instance = new BaseClient(true);
}
return _instance;
}
}
}
public void SetInfo(string url, string username, string password)
{
_url = url;
_username = username;
_password = password;
}
public string GetVersion()
{
//MyService is a simple static service provider
return MyService.GetVersion(_url, _username, _password);
}
}
public class Advanced : BaseClient
{
private static AdvancedClient _instance;
private static readonly object padlock = new object();
public static AdvancedClient Instance
{
get
{
lock (padlock)
{
if (_instance == null)
{
_instance = new AdvancedClient(true);
}
return _instance;
}
}
}
public void DoAdvancedMethod()
{
MyService.DoSomething(_url, _username, _password);
}
}
したがって、BaseClient.Instance.SetInfo("http://myUrl", "myUser", "myPassword"); を使用すると、AdvancedClient.Instance.DoAdvancedMethod() の場合、AdvancedClient シングルトンは BaseClient シングルトンと同じ基本メンバー インスタンスを使用しますか?