라이브러리 프로젝트를 다시 컴파일하여 네임 스페이스를 확인할 수없는 Visual Studio 2008에서 문제가 발생했습니다. 문제는 Visual Studio가 불필요하게 네임 스페이스를 확장한다는 것입니다. 예를 들어, 나는 과거가 갑자기 재 컴파일 할 때 실패하기 시작에서 잘 컴파일하고있다Visual Studio에서 네임 스페이스를 확장하여 오류가 발생했습니다
... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value;
같은 캐스트가 있습니다. Visual Studio에서이 문제를 해결할 수 없으며 "형식 또는 네임 스페이스 이름 'Data'가 네임 스페이스 'MyCompany.MyCompany.Dashboard'..."에 존재하지 않습니다. "라는 오류 메시지가 나타납니다. 이 문제를 해결 한 변화는 새로운 수업을 도서관에 추가하는 것이 었습니다. 실패한 클래스는 기존 클래스와 손길이없는 클래스입니다.
전에 한 번 비슷한 점이 있었지만 UI 디자이너가 "MyCompany.MyCompany ..."로 명시 적으로 인증 된 코드를 생성했습니다. 근본 원인이 두 가지 상황에서 동일하기를 바라고 있습니다.
라이브러리 프로젝트의 기본 네임 스페이스가 유용하거나 유용하지 않은지 확실하지 않은 경우 "MyCompany"입니다. 수정을 시도했지만 변경 사항을 알지 못했습니다.
감사합니다. 이
global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct
:: 세계에
해결 방법은 효과적이지만, 어떤 설명에 첫 번째 한정어가 중복되는 이유는 무엇입니까? 이것은 방금 아무데도 나오지 않았고 왜 Visual Studio가 왜 좋은 이유없이 불평 할 때 global :: 한정자를 무작위로 추가하는 것처럼 보일 것입니다. 나는이 일이 이전에 일어난 이후에 어떻게 분쟁이 일어 났는지 보지 못한다. – doobop
MyCompany.MyCompany 또는 MyCompany.MyCompany 유형의 네임 스페이스가 존재하면 모호성이 발생하여 오류가 발생하는 경우에만 오류가 발생합니다 (100 %는 아님). global ::을 지정하면 컴파일러에게 그 이후의 첫 번째 한정자는 중첩되지 않은 네임 스페이스 여야하며 컴파일러는 해당 정보의 모호성을 해결합니다. global ::을 반복해서 지정해야 할 필요가 없도록 네임 스페이스 또는 (덜 가능성있는) 유형의 잘못된 이름을 확인하는 것이 좋습니다. – JBSnorro
예, 어쨌든 내 클래스는 "MyCompany.MyCompany"네임 스페이스로 생성되었습니다. 문제를 해결 한 수정. 감사. – doobop