2013-07-16 3 views
0

대규모 웹 응용 프로그램에 웹 서비스에 대한 참조를 추가하면 자동 생성 Reference.cs에서 프로젝트를 중지하고 있습니다. 여기에 오류가 있습니다 :자동 생성 된 파일의 네임 스페이스 문제

Error 4 The type or namespace name 'XXXXXServiceReference' does not exist in the namespace 'Oranges.Oranges' (are you missing an assembly reference?) C:\XXXXX\Service References\XXXXXServiceReference\Reference.cs 

문제는이 레거시 시스템의 구성 때문입니다. 기본 네임 스페이스와 이름이 같은 네임 스페이스가 있습니다. 따라서 네임 스페이스 아래에 "Oranges.Oranges"라고 선언 된 큰 섹션이 있습니다. 나는 그것을하지 않았고 변화하지 않았습니다. 파머.

자동 생성 코드가 Oranges.XXXXXServiceRequest를 호출하면 ASP.NET은 Oranges.Oranges에서 XXXXXServiceRequest를 찾아 오류를 일으키지 않습니다.

그래서 자동 생성 또는 ASP.NET이이 섹션에 네임 스페이스를 할당하는 방식을 변경해야합니다. 다른 곳에서 사용된다면이 자동 네임 스페이스 가정을 죽일 위험을 감수 할 수 없습니다. 이것은 매우 큰 웹 응용 프로그램이며 오랫동안 작업하지 않았습니다.

제안 사항?

+0

그래서 "Oranges"라는 이름의 또 다른 네임 스페이스를 발견했습니다. 그러면 이름이 같은 네 개의 네임 스페이스가 만들어집니다. 이제 "Oranges.Admin"에있을 때 global :: Oranges.Oranges.XXXXXServiceReference를 호출해야합니다. 그렇지 않으면 네임 스페이스가 있기 때문에 "Oranges.Admin.Oranges"를 찾습니다. – hyperGeoMetric

답변

1

버머가 맞습니다.

나쁜 해결책 : 자동 생성 된 서비스 참조 코드를 편집하고 거기에 잘 배치 된 global:: 키워드를 추가하십시오. 코드를 다시 생성 할 때마다이 작업을 수행하십시오.

참고 : 제안하는 경우에도 더러워집니다. 부드럽게 해주세요.

+0

그래, 그게 내가 지금까지 가지고있는거야. 하지만 제 3 자 개발자입니다. 다른 개발자가 재생성하면 내 솔루션이 사라집니다. 이것이 나의 최후의 수단이라고 말할 것입니다. – hyperGeoMetric

1

1. F2를 눌러 이름 공간의 이름을 바꿀 수 있습니다.

2. 솔루션 관리에서 속성을 클릭하고 기본 네임 스페이스를 수정하십시오. enter image description here

+0

감사합니다. 그러나 프로젝트 전반을 재정의 할 수 없습니다. 그것은이 거대한 프로젝트에서 다른 것들을 무너 뜨릴 것이고, 나는 그것을 액세스하는 유일한 사람이 아닙니다. – hyperGeoMetric