Если я определяю класс с частным конструктором по умолчанию и публичным конструктором с параметрами, как я могу получить доступ к частному конструктору?
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();
}
}
Итак, как я могу получить доступ к частному конструктору?
Спасибо
EDIT:
Причина, по которой я хотел сделать это, заключалась в том, что я хотел создать тесты для одного из наших бизнес-классов, но не позволял бы потребителю этого класса иметь возможность некорректно создавать объект. Я тестирую его, поэтому я знаю (надеюсь!), При каких обстоятельствах тесты потерпят неудачу. Я все еще тестирую n00b прямо сейчас, поэтому моя идея может быть или не быть "неправильным способом" для выполнения вещей.
Я изменил свою стратегию тестирования, чтобы просто сделать так, как потребитель этого класса будет, то есть вызвать общедоступные методы, и если общедоступные методы будут в порядке, предполагая, что частные методы в порядке. Я бы предпочел испытать частные методы, но мой босс дышит мне на шею: - (