我有一个通用类,看起来像这样:
public class DataServiceBase<T> : Screen where T : EntityManager, new (){
private T _entityManager;
public T EntityManager {
get {
if (_entityManager == null)
{
_entityManager = new T();
}
return _entityManager;
}
}
基本上我想做的就是创建一个EntityManager,如果它不存在的话。这个方法实际上很有效。然而,由于T不再有无参数构造函数,我需要修改这个方法。因此,我完全不能使用这种方法。
但是,我确实需要在派生级别的DataService中强类型化地使用EntityManager,因为不同的实体管理器处理不同的实体。
我不确定如何解决这个问题。我尝试过的一个替代方案是:
public DataServiceBase(EntityManager entityManager) {
this._entityManager = entityManager;
}
换言之,我将其传递给构造函数,但现在我不再拥有该属性的强类型特性。
格雷格