Я пытаюсь разделить общее пространство имен между двумя проектами в одном решении. Это проекты "Blueprint" и "Repositories". Blueprint содержит интерфейсы для всего приложения и служит ссылкой на структуру приложения.
В проекте Blueprint у меня есть интерфейс со следующим объявлением:
namespace Application.Repositories{
public interface IRepository{
IEntity Get(Guid id);
}
}
В проекте Repositories у меня есть класс следующего класса:
namespace Application.Repositories{
public class STDRepository: IRepository
{
STD Get(Guid id){
return new SkankyExGirlfriendDataContext()
.FirstOrDefault<STD>(x=>x.DiseaseId == id);
}
}
}
Однако это не работает. Проект Repositories имеет ссылку на проект Blueprint. Я получаю сообщение об ошибке VS: «Не удалось найти тип или имя пространства имен« IRepository »(отсутствует директива using или ссылка на сборку?) - Обычно это легко исправить, но добавление оператора using не имеет смысла так как они имеют одно и то же пространство имен. Я все равно попробовал, и оно не сработало. Ссылка была добавлена, и без строки кода, ссылающейся на этот интерфейс, оба проекта успешно компилируются. Я потерян здесь. ничего не нашли, поэтому я предполагаю, что с тем, что я делаю, что-то в корне не так, но я не знаю, что это такое. Я надеюсь, что вы, ребята, можете помочь.
Примечание. Причина, по которой я хочу сделать это и сохранить интерфейсы в одном и том же пространстве имен, заключается в том, что я хочу, чтобы твердый проект содержал все интерфейсы, чтобы иметь ссылку на полную архитектуру приложение. Я рассмотрел обходные пути, такие как помещение всех интерфейсов в пространство имен Blueprint.Application вместо пространства имен приложения. Однако это потребовало бы, чтобы я написал заявление об использовании практически на каждой странице приложения ... и мои пальцы устали. Еще раз спасибо, ребята ...