从C#中的泛型获得泛型(通用限制)

时间:2017-12-30 10:22:05

标签: c# generics

我试图在通用限制中自动定义泛型,但我无法做到 这是我的代码,希望我可以做,我想做什么:

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#功能。

0 个答案:

没有答案