2008-10-21 7 views
1

참고 : 웹 서비스 코드를 제어 할 권한이없는 웹 서비스를 사용하고 있습니다..Net webservice, 액세스하는 방법 ...?

그래서 .net 2.0에서 webservice를 참조하고 webservice 네임 스페이스의 클래스, 예를 들어 foobar를 참조하십시오. 나는 더 이상이는 foobar 클래스는 사용할 수 없다 같은 웹 서비스에 대한 참조를 추가 할 때

public class foobar : System.Web.Services.Protocols.SoapHttpClientProtocol 

하지만 .NET 3.5 : 그것은 다음과 같이 정의합니다. 위의 foobar 클래스에있는 모든 메서드를 노출하는 인터페이스 인 foobarSoap이 표시됩니다.

그러나 명백한 이유로 속성을 노출하지 않습니다.

이러한 속성에 액세스해야합니다. 어떻게해야합니까?

답변

0

2005 년에서 2008 년으로 업그레이드했을 때 나는 비슷한 문제를 겪었습니다. 당신이 누락 된 것 같아요. "Add Service Reference"를 클릭하면 더 새로운 대화 상자가 나타납니다. 아래쪽에있는 고급 단추를 클릭 한 다음 나타나는 다음 대화 상자에서 호환성 섹션의 하단에있는 웹 참조 추가 단추를 클릭하십시오. 그렇다면 당신은 가장 익숙한 대화 상자를 얻을 것이고 표준 2.0 프록시 클래스를 갖게 될 것입니다.

1

할 수 있습니다 언어 도구 (Wsdl.exe)이 실제 클래스 파일 생성 웹 서비스 설명을 사용해보십시오 : 그것은 MSDN Page을의에

wsdl.exe /language:cs http://www.example.com/FooService.wsdl

당신은 WSDL Tool에 대한 자세한 정보를 얻을 수 있습니다 .

0

속성이 서비스 정의 (WSDL)에 포함되지 않는다는 부적절한 느낌이 들기 때문에 사용자가 사용할 수 없음을 의미합니다. 가능한 경우 실제 메서드로 속성을 노출하는 서비스를 유지하는 사람을 설득하려고합니다.

행운이 없을 수도있는 속성에 액세스 할 수 없을 가능성이 큽니다. 죄송합니다.

속성을 공개하려고 시도한 다음 여기에 결과를보고합니다.

편집 : WCF를 사용하여 인터페이스 속성을 노출 할 수 없습니다, 그것은 단순히

[ServiceContract] 
public interface IFooService 
{ 
    [OperationContract] // This is not allowed, it will not compile 
    string Name { get; set; } 
} 

편집을 컴파일되지 않습니다 : 하나 ASMX 웹 서비스를 사용하여 수행 할 수 없습니다. :

http://www.xmlme.com/WSShakespeare.asmx 

비주얼 스튜디오 2008에 기반 인터페이스와 프록시 클래스를 생성 : (

[WebService(Namespace = "http://tempuri.org/")] 
public class FooService : System.Web.Services.WebService 
{ 
    [WebMethod] // This is not allowed, it will not compile 
    string Name { get; set; } 
} 
0

난 그냥 추가 서비스 참조 메뉴를 사용하여 샘플 프로젝트를 생성하고 서비스에 웹 프록시를 생성 WSDL에가. 예를 들어, 나는 인터페이스 ShakespeareSoap를 구현하는 클래스의 ShakespeareSoapClient 있습니다.

잘 작동하는 것 같다. 나는 뭔가를 놓치고 있습니까.

관련 문제