У меня есть общий класс обертки, который предназначен для использования с набором типов. Эти типы генерируются утилитой и все они получены из базового класса ClientBase. Хотя ClientBase имеет только конструктор по умолчанию, все сгенерированные типы имеют конструктор по умолчанию, а конструктор берет строку как параметр. В конструкторе класса-оболочки я создаю экземпляр типа с конструктором, который берет строку. Вот пример кода:
public class ClientBase
{ }
public class GenericProxy<T>
where T: ClientBase, new()
{
T _proxy;
public GenericProxy(string configName)
{
_proxy = new T(configName);
}
}
Этот код не компилируется, потому что тип T не гарантирует наличие конструктора, который принимает строку. Есть ли способ определить ограничение для универсального класса для обеспечения того, чтобы тип T должен иметь конструктор, который принимает строку? Если это невозможно, то какие хорошие альтернативы справляются с такой ситуацией?