一連の型で使用するためのラッパー ジェネリック クラスがあります。これらの型はユーティリティによって生成され、すべて基本クラス 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 に文字列を受け取るコンストラクターが必要であることを強制する方法はありますか? これが不可能な場合、この種の状況を処理するための適切な代替手段は何ですか?