하나의 솔루션에서 두 프로젝트간에 공통의 네임 스페이스를 공유하려고합니다. 프로젝트는 "청사진"과 "저장소"입니다. Blueprint는 전체 응용 프로그램에 대한 인터페이스를 포함하며 응용 프로그램 구조에 대한 참조로 사용됩니다. 그러나두 개의 VS2008 C# 클래스 라이브러리 프로젝트가 단일 네임 스페이스를 공유 할 수 있습니까?
namespace Application.Repositories{
public class STDRepository: IRepository
{
STD Get(Guid id){
return new SkankyExGirlfriendDataContext()
.FirstOrDefault<STD>(x=>x.DiseaseId == id);
}
}
}
이 작동하지 않는 : 나는 클래스를 다음 클래스가있는 저장소 프로젝트에서
namespace Application.Repositories{
public interface IRepository{
IEntity Get(Guid id);
}
}
: 청사진 프로젝트에서
는, 나는 다음과 같은 선언 인터페이스를 가지고 . Repositories 프로젝트에는 Blueprint 프로젝트에 대한 참조가 있습니다. VS 오류가 나타납니다 : "형식 또는 네임 스페이스 이름 'IRepository'을 찾을 수 없습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) - 일반적으로 수정하기 쉽지만 using 문을 추가하는 것은 의미가 없습니다 그들은 네임 스페이스가 같기 때문에 어쨌든 해봤지만 작동하지 않았습니다. 참조가 추가되었으며 해당 인터페이스를 참조하는 코드 줄이 없으면 두 프로젝트가 모두 성공적으로 컴파일됩니다. 여기에서 길을 잃어 버렸습니다. 아무것도 찾지 못했고, 근본적으로 내가하고있는 일에 뭔가 이상한 점이 있다고 가정하고 있습니다 ... 그러나 나는 그것이 무엇인지 모릅니다. 그래서,이 문제를 해결하는 방법에 대한 설명이나 지침을 고맙게 생각합니다.참고 :이 방법으로 인터페이스를 동일한 네임 스페이스에 유지하려는 이유는 솔리드 프로젝트가 모든 프로젝트를 유지하기를 원하기 때문입니다. 응용 프로그램의 전체 아키텍처에 대한 참조를 갖기 위해 인터페이스를 사용합니다. 응용 프로그램 네임 스페이스 대신 모든 인터페이스를 Blueprint.Application 네임 스페이스에 배치하는 등의 해결 방법을 고려했습니다. 그러나 응용 프로그램의 거의 모든 페이지에 using 문을 써야하고 내 손가락이 피곤합니다. 다시 고마워 ...
리포지토리 프로젝트에서 작업 할 때 VS IntelliSense에서 IRepository가 표시됩니까? –
리포지토리 프로젝트에 청사진 프로젝트에 대한 참조가 있는지 확인하십시오. 그냥 나 자신을 시도하고 그것은 나를 위해 일했다. – MatthewKing