문제

나는 SharpDevelop을 사용하여 C#으로 간단한 웹 서비스를 작성했습니다(방금 구입했고 마음에 듭니다).

클라이언트는 VB에서 이를 원했고 다행히 VB.NET으로 변환 기능이 있습니다.훌륭해요.모든 코드를 번역하고 빌드했습니다.(저는 오랫동안 "메모장"을 해왔기 때문에 조금 구식으로 보일 수도 있습니다.)

하지만 지금 서비스를 로드하려고 하면 이 오류가 발생합니다.

Parser Error Message: Could not load type 'flightinfo.Soap' from assembly 'flightinfo'.

Source Error:

Line 1:  <%@ WebService Class="flightinfo.Soap,flightinfo" %>

저장소를 삭제하고 다시 빌드했으며 Google(및 stackoverflow)을 검색했습니다.C#의 남은 부분이 있는지 프로젝트 파일을 샅샅이 뒤졌습니다.

어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

VB.NET에서 네임스페이스 선언은 프로젝트의 기본 네임스페이스를 기준으로 합니다.따라서 프로젝트의 기본 네임스페이스가 X.Y로 설정되면 Namespace Z 그리고 End Namespace X.Y.Z 네임스페이스에 있습니다.C#에서는 프로젝트의 기본 네임스페이스에 관계없이 전체 네임스페이스 이름을 제공해야 합니다.따라서 C# 프로젝트에 기본 네임스페이스 X.Y가 있는 경우 CS 파일에는 여전히 namespace X.Y 선언.VB로 변환한 후 기본 네임스페이스와 파일의 네임스페이스 선언이 모두 동일하게 유지되면 X.Y.X.Y 네임스페이스에 클래스가 있게 됩니다.따라서 귀하의 경우 Soap 클래스는 이제 flightinfo.flightinfo 네임스페이스에 있습니다.따라서 세 가지 가능한 솔루션이 있습니다.

  • asmx 파일을 다음으로 변경하세요.

  • 프로젝트에서 기본 네임스페이스를 제거합니다.

  • VB 파일에서 네임스페이스 선언을 제거합니다.

다른 팁

<%@ WebService Class="flightinfo.Soap,flightinfo" %>

수업 이름이 무엇인가요?

이 문제는 프로젝트 어셈블리에 대해 서로 다른 명명 규칙을 사용하는 VB.NET 및 C# 프로젝트와 프로젝트 네임스페이스가 사용되는 방식으로 인해 발생할 수 있습니다.적어도 그것은 내가 보기 시작할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top