如果我定义一个具有私有默认构造函数和具有参数的公共构造函数的类,我如何访问私有构造函数?
public class Bob
{
public String Surname { get; set; }
private Bob()
{ }
public Bob(string surname)
{
Surname = surname;
}
}
我可以通过类上的静态方法访问私有构造函数,如下所示:
public static Bob GetBob()
{
return new Bob();
}
我认为我可以通过扩展方法访问私有构造函数,因为(根据我的理解)扩展方法已被翻译,因此它们看起来是类上的静态方法,但我不能:
static class Fred
{
public static Bob Bobby(this Bob bob)
{
return new Bob();
}
}
那么,如何访问私有构造函数呢?
谢谢
编辑:
我想这样做的原因是我想为我们的一个业务类创建测试,但不允许此类的使用者能够错误地实例化对象。我正在测试它,所以我知道(我希望!)在什么情况下测试会失败。我现在仍在测试 n00b,所以我的想法可能是也可能不是做事的“错误方式”。
我已经改变了我的测试策略,只做这个类的消费者会做的事情,即调用公共方法,如果公共方法没问题,假设私有方法没问题。我仍然更愿意测试私有方法,但我的老板对可交付成果感到不满:-(