C#-如何在属性或变量中指定泛型类型

C#-如何在属性或变量中指定泛型类型,c#,selenium,generics,C#,Selenium,Generics,我有两个不同的bundle,比如WebBundle和MobileBundle,我有一个singleton泛型类,它具有任何bundle的类型(下面添加了泛型singleton代码) 公共类GenericSingleton其中T:class,new() { 私有静态只读对象挂锁=新对象(); 私有GenericSingleton(){} 私有静态T实例=null; 公共静态T实例{ 得到 { 锁(挂锁) { if(实例==null) { 实例=新的T(); } 返回实例; } } } } 当我执

我有两个不同的bundle,比如WebBundle和MobileBundle,我有一个singleton泛型类,它具有任何bundle的类型(下面添加了泛型singleton代码)

公共类GenericSingleton其中T:class,new()
{
私有静态只读对象挂锁=新对象();
私有GenericSingleton(){}
私有静态T实例=null;
公共静态T实例{
得到
{
锁(挂锁)
{
if(实例==null)
{
实例=新的T();
}
返回实例;
}
}
}
}
当我执行下面一行时

var web = GenericSingleton<WebBundle>.Instance;
var-web=GenericSingleton.Instance;
我在web变量中得到webbundle类的实例,intellisense提供了webbundle中所有可用的方法

现在我的要求是将这个VARweb方法变量分配给类级属性或变量,对于任何类型的bundle都应该是动态的


请帮助解决此问题

您需要提取这些对象共享的公共接口或抽象类(或普通类,只是一些公共部分)。它们有相应的名字,这表明它们很相似。可能它们具有相同或相似的公共方法(可能不是全部,而是一些)、公共属性或事件。您需要重构代码,将这些常见的东西提取到一个实体中,并使其在泛型类中实现:

public class GenericSingleton<T> where T : ICommonInterface
public类GenericSingleton其中T:ICommonInterface
public class GenericSingleton<T> where T : ICommonInterface