Я хотел бы знать, можно ли (и если да, то как) определить пространство имен в качестве параметра ограничения в объявлении универсального класса.
То, что у меня есть, это:
namespace
MyProject.Models.Entities <- Содержит мои классы, которые необходимо сохранить в db </p>
namespace
MyProject.Tests.BaseTest <- Очевидно, я думаю </p>
Теперь объявление моего класса 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 и отображаю сущности с наследованием, хотя возможно и добавляет уровень сложности, который не требуется.
Итак, можно ли ограничить универсальный параметр класса пространством имен, а не конкретным типом