문제

대본:

웹 서비스의 Silverlight 3.0을 클라이언트로 사용하고 있습니다.

설계:

서버에는 이름이 지정된 클래스가 있습니다 deviceinfoservice 장치 목록을 얻거나 장치의 속성을 얻는 기본 기능이 있습니다.

ASP.NET 프로젝트를 열고 웹 참조를 추가하려고하면 "웹 참조"를 추가 할 수있는 옵션을 찾을 수 있습니다. 이 방법으로 웹 참조를 추가 한 후에는 객체를 만들고 메소드에 액세스하여 DeviceInfoservice 클래스에 액세스 할 수 있습니다.

웹 참조 v/s 서비스 참조 :

Silverlight에 오는 것 : 서비스 참조를 추가하려고 할 때 웹 참조를 추가 할 수있는 옵션이 없습니다. 서비스 참조와 함께 WSDL 파일이 다운로드 될 때까지 모든 것이 잘 작동합니다. 사람들은 .NET 2.0으로 돌아가서이 옵션을 얻을 수 있다고 말하지만 아마도 .net 2.0에서는 Silverlight가 작동하지 않을 것입니다.

문제

이제 클래스 DeviceInfoservice에 액세스하려고 할 때 찾을 수 없습니다. 내가 얻는 것은 인터페이스입니다 - deviceinfoservicesoap 및 deviceinfoservicesoapchannel. DeviceInfoservicesoapclient라는 클래스.

GethostedDevices 및 GetDeviceInfo 방법은 더 이상 사용할 수 없습니다. 내가 얻는 것은 getDeviceInforequest, getDeviceInforequestBody, getDeviceInforPonse 및 getDeviceInforPonseBody입니다.

나는이 네 가지 클래스를 사용하는 방법을 많이 구글링했지만 아무것도 찾지 못했습니다. ASP.NET에서 직접 2 개의 클래스를 얻고 해당 요청 응답 유형을 사용하지 않기를 원합니다.

도움이 되었습니까?

해결책

ASP.NET의 웹 참조는 Silverlight의 서비스 참조와 동일합니다.

다음은 Silverlight에서 웹 서비스를 사용하는 방법에 대한 예입니다. Cdyne Provanity 필터.

프로젝트에 새 서비스 참조를 추가하십시오. URL은 다음과 같습니다. http://ws.cdyne.com/profanityws/profanity.asmx?wsdl, 이름을 ServiceReference1로 남겨 두십시오.

이 코드를 사용하여 서비스를 호출하십시오 (비동기식으로 구현됨) :

public MainPage()
{
    InitializeComponent();

    string badText = "I wonder if the filter will filter this out: shit bad luck";
    ServiceReference1.ProfanitySoapClient client = new ServiceReference1.ProfanitySoapClient();
    client.ProfanityFilterCompleted += new EventHandler<ServiceReference1.ProfanityFilterCompletedEventArgs>(client_ProfanityFilterCompleted);
    client.ProfanityFilterAsync(badText, 0, false);            
}

void client_ProfanityFilterCompleted(object sender, ServiceReference1.ProfanityFilterCompletedEventArgs e)
{
    string cleanText = e.Result.CleanText;  // Web service callback is here
}

그리고 당신은 Silverlight에서 웹 서비스를 제공하고 실행했습니다!

다른 팁

당신은 몇 가지 개념에 대해 끔찍하게 혼란스럽게 들립니다.

다음 Silverlight.net 비디오를보고 도움이되는지 확인하십시오.Silverlight에서 WCF 및 ASP.NET 웹 서비스를 소비하는 방법

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