我有以下代码来确保Watin只有一个浏览器实例。
public sealed class BrowserIE
{
static readonly IE _Instance = new IE();
static BrowserIE()
{
}
BrowserIE()
{
}
public static IE Instance
{
get { return _Instance; }
}
}
但我无法弄清楚在这个类中应用设置的位置。如何/在何处将以下设置应用于上述代码,以便它们在
之前生效 Settings.Instance.MakeNewIeInstanceVisible = false;
我知道我可以在一个有效的方法中使用以下内容,但我无法在上面的例子中得到语法,其中_Instance是静态只读。
Settings.Instance.MakeNewIeInstanceVisible = false;
_Instance = new IE();
答案 0 :(得分:1)
为什么不使用静态构造函数?
public sealed class BrowserIE
{
static readonly IE _Instance;
static BrowserIE()
{
Settings.Instance.MakeNewIeInstanceVisible = false;
_Instance = new IE();
}
BrowserIE()
{
}
public static IE Instance
{
get { return _Instance; }
}
}
答案 1 :(得分:1)
如果要实现线程保存单例并使用.NET 4.0,则可以使用System.Lazy<T>
类
public sealed class BrowserIE
{
private static readonly Lazy<BrowserIE> _singleInstance = new Lazy<BrowserIE>(() => new BrowserIE());
private BrowserIE() { }
public static BrowserIEInstance
{
get { return _singleInstance.Value; }
}
}