L'accès à un Constructeur Privé de l'Extérieur de la Classe en C#

Si je définir une classe avec un constructeur par défaut et un constructeur public qui a des paramètres, comment puis-je accéder au constructeur privé?

public class Bob
{
   public String Surname { get; set; }

   private Bob()
   { }

   public Bob(string surname)
   {
      Surname = surname;
   }
}

Je peux accéder au constructeur privé via une méthode statique de la classe comme ceci:

public static Bob GetBob()
{
   return new Bob();
}

J'ai pensé que je pouvais accéder au constructeur privé via une méthode d'extension, puisque (selon ma compréhension) les méthodes d'extension sont convertis afin qu'ils semblent être méthodes statiques de la classe, mais je ne peux pas:

static class Fred
{
   public static Bob Bobby(this Bob bob)
   {
      return new Bob();
   }
}

Alors, comment puis-je accéder au constructeur privé?

Merci


EDIT:

La raison que j'ai voulu faire ce que je voulais créer des tests pour l'un de nos classes, mais de ne pas permettre à un consommateur de cette classe pour pouvoir instancier un objet de manière incorrecte. Je suis en essais, donc je sais (j'espère!) dans quelles circonstances les tests échouent. Je suis encore un test de n00b maintenant donc, mon idée peut ou peut ne pas avoir été dans le "mauvais sens" de faire les choses.

J'ai changé ma stratégie de test pour juste faire les choses de la façon dont les consommateurs de cette classe, c'est à dire d'appeler les méthodes publiques et si les méthodes publiques sont OK, en supposant que les méthodes privées sont OK. Je préfère encore de tester les méthodes privées, mais mon patron est respirer en bas de mon cou sur un produit livrable 🙁

  • L'humour moi, Pourquoi voulez-vous appeler votre constructeur à l'extérieur de votre implémentation de la classe ?
  • Pourquoi le vote serré? C'est encore une question valable, même si il n'est pas recommandé pour obtenir le constructeur.
  • D'accord-encore une question, pourquoi fermer?
  • Re: Essai des méthodes privées. J'ai trouvé que par des essais privés méthodes individuellement, mes tests sont plus petits et plus précis que si je ne tester que les méthodes publiques. J'ai tendance à faire de "privé" en "protégés" et écrivez un gestionnaire spécifique de la classe dans la bibliothèque de test pour les exposer comme des versions publiques plutôt que d'utiliser la réflexion.
  • Herbi, Votre classe plus de chances d'avoir quelques odeurs de code si vos méthodes de test obtenir de gros pour être en mesure de tester privé/protégé méthodes.
  • Oui, beaucoup de l'héritage du code écrit par d'anciens développeurs. De Plus, je dois dire que l'entreprise en cause la logique (la partie échange de chiffre d'affaires) est ridiculement compliqué (plus complexe que mon Doctorat pour un début), mais c'est la façon dont nos clients.
  • Je ne peux imaginer une raison pour un privé ctor. Ok, objet de la piscine de modèle et d'obtenir de l'instance, mais même là, je le ferais protégé. Donc, est-il une raison pour un privé ctor à tous?