我想知道是否(如果是这样的话)可以将命名空间定义为泛型类声明中的约束参数.
我有的是这个:
namespace MyProject.Models.Entities < - 包含要在db中保留的类
namespace MyProject.Tests.BaseTest < - 我觉得很明显
现在我的'BaseTest'类的变化看起来像这样;
public class BaseTest<T>
Run Code Online (Sandbox Code Playgroud)
这BaseTest比在测试期间删除所有添加到数据库的实体更多(在编写本文时).所以通常我会将测试类声明为:
public class MyEntityRepositoryTest : BaseTest<MyEntity>
Run Code Online (Sandbox Code Playgroud)
我想要做的是类似于以下内容:
public class BaseTest<T> where T : <is of the MyProject.Models.Entities namespace>
Run Code Online (Sandbox Code Playgroud)
现在我知道完全可以简单地声明一个'BaseEntity'类,在该类中,在MyProject.Models.Entities命名空间中创建的所有实体都将从该类继承;
public class BaseTest<T> where T : MyBaseEntity
Run Code Online (Sandbox Code Playgroud)
但是......我实际上并不需要或想要.另外,我使用ORM和带有继承的映射实体,虽然可能,但增加了一层不需要的复杂性.
那么,是否可以将泛型类参数约束到命名空间而不是特定类型?