Если класс не принадлежит вам, то похоже, что API был специально написан, чтобы предотвратить это, а это означает, что, возможно, ваш подход не соответствует тому, что предполагали авторы API. Взгляните на документы и посмотрите, есть ли рекомендуемый подход к использованию этого класса.
Если вы делаете контроль над классом и хотите реализовать этот шаблон, то обычно он реализуется через статический метод класса. Это ключевая концепция, которая также составляет шаблон Singleton.
Например:
public PrivateCtorClass
{
private PrivateCtorClass()
{
}
public static PrivateCtorClass Create()
{
return new PrivateCtorClass();
}
}
public SomeOtherClass
{
public void SomeMethod()
{
var privateCtorClass = PrivateCtorClass.Create();
}
}
Материал SqlCommandParameter является хорошим примером. Они ожидают, что вы создадите параметры, вызывая такие вещи:
var command = IDbConnnection.CreateCommand(...);
command.Parameters.Add(command.CreateParameter(...));
Мой пример не очень хороший код, потому что он не демонстрирует настройку свойств параметров команды или повторное использование параметров/команд, но вы поняли идею.
person
Neil Barnwell
schedule
02.04.2009