Доступ к частному конструктору извне класса в C #

Если я определяю класс с частным конструктором по умолчанию и общедоступным конструктором с параметрами, как я могу получить доступ к частному конструктору?

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 прямо сейчас, так что моя идея могла быть или не быть "неправильным способом" делать что-то.

Я изменил свою стратегию тестирования, чтобы просто делать что-то так, как это сделал бы потребитель этого класса. , т.е. вызов общедоступных методов и, если общедоступные методы в порядке, предполагая, что частные методы в порядке. Я бы по-прежнему предпочел протестировать частные методы, но мой босс дышит мне в шею над результатом: - (

25
задан AndrewJacksonZA 12 November 2010 в 08:54
поделиться