Если класс не один из ваших, то похоже, что 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(...));
Мой пример не очень хороший код, потому что он не демонстрирует установку свойств параметров команды или повторное использование параметров / команд, но вы поняли идею.