2009-07-21 10 views
5

최근 web.config 파일에 일부 네임 스페이스를 추가하여 모든 aspx 페이지에서 각 aspx 페이지에 import 문을 추가하지 않고도 다양한 상수 및 열거 형을 참조 할 수 있도록했습니다. 이를 추가 한 이후 asmx 웹 서비스를 테스트 할 때 오류가 발생했습니다. 이 연구하는 동안, 나는 DefaultWsdlHelpGenerator.asmx가 런타임 컴파일시라는 것을 발견런타임 컴파일 중 모호한 참조 오류가 발생했습니다.

CS0104: 'Message' is an ambiguous reference between 'System.Web.Services.Description.Message' and 'InsTech.ForeSight.Message'

다음과 같은 서명이 거기에 방법이있다 : WSDL을 생성하는 동안 우리는 다음과 같은 오류가 나타납니다 :

void WriteSoapMessage(MessageBinding messageBinding, Message message, bool soap12) { 

우리는이 웹 서비스 파일이 완전히 자신의 메시지를 자격이되지 않기 때문에 모호한 참조를 일으키는 우리의 네임 스페이스라는 메시지에 정의 된 개체가 있습니다.

web.config에서 네임 스페이스를 제거하지 않고 어떻게 해결할 수 있습니까? 가상 디렉터리의 다른 폴더에 웹 서비스가 있으므로 네임 스페이스에 명확한 web.config를 추가하려고했지만 작동하지 않는 것 같습니다.

도움을 주시면 감사하겠습니다. 감사 케빈

답변

3

당신은 당신의 코드에서 네임 스페이스 별칭을 사용하고 그들 사이에 차이가 사용할 수 있습니다 :

using ourOwn=our.own.namespace; 

을 그리고 ourOwn.Message로 메시지 클래스를 참조하십시오. 그러면 충돌을 피할 수 있습니다.

+1

내 의견을 참조하십시오. 아래에 남겨 두었습니다. 나는 WriteSoapMessage가 내가 쓴 함수가 아니라 .net 프레임 워크의 일부라는 것을 명확히해야만한다. – Kevin

관련 문제