Если я определю класс с закрытым конструктором по умолчанию и открытым конструктором, который имеет параметры, как я могу получить доступ к закрытому конструктору?
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 прямо сейчас, поэтому моя идея могла быть, а может и не быть, «неправильным» способом ведения дел.
Я изменил свою стратегию тестирования, чтобы просто делать то, что делает потребительэтот класс будет, то есть вызывать открытые методы и, если открытые методы в порядке, при условии, что закрытые методы в порядке.Я все еще предпочел бы проверить частные методы, но мой босс дышит мне в шею на предмете: - (