我试图在通用限制中自动定义泛型,但我无法做到 这是我的代码,希望我可以做,我想做什么:
public class DummyEntity : IDbId { public int Id { get; set; } }
public class BaseServices<TEntity> { }
public class SomeServices : BaseServices<DummyEntity>{ }
public class BaseController<TService, TEntity> : Controller where TService : BaseServices<TEntity> { }
//I can do this.
public class SomeController : BaseController<SomeServices, DummyEntity> { }
//but I want this.
public class Some2Controller : BaseController<SomeServices> { }
这可能吗?我也不想将DummyEntity
传递给BaseController
,因为DummyEntity
可以从SomeServices<DummyEntity>
中提取。
创建非通用BaseService
不是一种选择。
我尝试了这个,但它没有编译:
public class Base2Controller<TServices> : Controller where TServices : BaseServices<> { }
我认为这个问题与this one非常相似(如果不相同),但我希望情况并非如此,或者如果是这样,过去8年内会引入一些新的C#功能。