我创建了一个单例,在构造函数中是这样的:
public static class MyCertificate
{
private readonly static X509Certificate2 _singletonInstance = new X509Certificate2();
static MyCertificate()
{
if(_singletonInstance == null)
_singletonInstance = GetMyCertificateFromDatabase();
}
public static X509Certificate2 MyX509Certificate
{
get { return _singletonInstance; }
}
...
}
MyX509Certificate 属性返回 _sigletonInstance。
不过,我需要做的是调试正在调用的方法,例如 GetMyCertificateFromDatabase()。所以在 an.aspx.cs 中我有这个:
protected void Page_Load(object sender, EventArgs e)
{
InsertCertificate();
}
private static void InsertCertificate()
{
X509Certificate2 certificate;
certificate = MyCerfiticate.MyX509Certificate;
}
我不太确定如何单步执行,以便我可以单步执行被调用的有助于设置该单例的方法。它只是步进到属性然后在我调试 InsertCertificate() 时返回
最佳答案
我假设您使用的是 visual studio。在 visual studio 中,转到“工具”->“选项”->“调试”,然后取消选中表示跨过属性和运算符的框
编辑:我刚刚注意到您执行了以下操作:
private readonly static X509Certificate2 _singletonInstance = new X509Certificate2();
这将防止您的 _singletonInstance 在您检查时永远为 null。
关于c# - 测试单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2268381/