我有一个通用的封装类,旨在与一组类型一起使用。这些类型是由一个实用程序生成的,并且全部都派生自基类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必须有一个接受字符串参数的构造函数?如果不可能,那么处理这种情况的好的替代方案是什么?