Bir dizi türle kullanılmak üzere tasarlanmış bir sarıcı genel sınıfım var. Bu türler bir yardımcı program tarafından üretilir ve tümü temel bir ClientBase'den türetilir. ClientBase yalnızca bir varsayılan kurucuya sahip olsa da, oluşturulan tüm türlerde varsayılan kurucu vardır, ayrıca bir kurucu parametre olarak bir dize alır. Sarmalayıcı sınıfının yapıcısında, bir dize alan kurucu ile türün bir örneğini başlatırım.Genel parametrenin, belirli parametreleri alan bir kurucuya sahip olması nasıl kısıtlanır?
public class ClientBase
{ }
public class GenericProxy<T>
where T: ClientBase, new()
{
T _proxy;
public GenericProxy(string configName)
{
_proxy = new T(configName);
}
}
tipi T bir dize alan yapıcıya sahip garantisi yoktur çünkü bu kod derleme değil: Burada örnek bir koddur. T türünün bir dizeyi alan bir kurucuya sahip olması zorunluluğunu uygulamak için genel sınıf üzerinde bir kısıtlama tanımlamanın bir yolu var mı? Eğer bu mümkün değilse, bu durumun üstesinden gelmek için iyi alternatifler nelerdir?