我有一个包装泛型类,旨在与一组类型一起使用。这些类型由实用程序生成,并且都派生自基类 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 必须有一个带字符串的构造函数?如果这是不可能的,有什么好的选择来处理这种情况?