【发布时间】:2010-06-13 13:43:04
【问题描述】:
我想知道是否(以及如何)可以将命名空间定义为泛型类声明中的约束参数。
我拥有的是这样的:
namespaceMyProject.Models.Entities
namespaceMyProject.Tests.BaseTest
现在我的“BaseTest”类的声明看起来像这样;
public class BaseTest<T>
这个BaseTest 所做的(在撰写本文时)只不过是删除了在测试期间添加到数据库中的所有实体。所以通常我会有一个测试类声明为:
public class MyEntityRepositoryTest : BaseTest<MyEntity>
我想做的是类似于以下内容:
public class BaseTest<T> where T : <is of the MyProject.Models.Entities namespace>
现在我知道,完全可以简单地声明一个“BaseEntity”类,在 MyProject.Models.Entities 命名空间中创建的所有实体都将从该类继承;
public class BaseTest<T> where T : MyBaseEntity
但是...我实际上不需要或不想。另外,我正在使用 ORM 并映射实体与继承,虽然可能,但增加了一层不必要的复杂性。
那么,是否可以将泛型类参数约束到命名空间而不是特定类型?
【问题讨论】:
标签: c# generics parameters constraints