Как получить объекты с ASP-сервера в мое приложение Silverlight 3? - PullRequest
0 голосов
/ 29 ноября 2009

У меня есть небольшое приложение Silverlight, которому нужно отправлять запросы на сервер. Можно ли вернуть объекты в приложение Silverlight или как я могу общаться с сервером?

Ответы [ 3 ]

1 голос
/ 29 ноября 2009

Используйте сервис WCF. Пока ваши объекты являются сериализуемыми, среда выполнения будет их прозрачно кодировать и декодировать.

Простой сервис WCF с поддержкой Silverlight выглядит примерно так:

using System.ServiceModel;
using System.ServiceModel.Activation;

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode =
    AspNetCompatibilityRequirementsMode.Allowed)]
public class YourService
{
    [OperationContract]
    public string DoStuff(string arg)
    {
        return arg + "stuff";
    }
}

Вы можете заменить «строку» своим типом данных, создав [DataContract].

0 голосов
/ 29 ноября 2009

Silverlight вообще не нужен ASP для работы, если у вас есть база данных на отдельном сервере, проверьте WCF, а затем заставьте Silverlight связаться со службой WCF, а затем со службой базы данных, если вам нужно что-то более прозрачное затем попробуйте службы WCF RIA, это позволит использовать промежуточный подход к доступу к данным в silverlight

0 голосов
/ 29 ноября 2009

По моему мнению, лучше всего использовать веб-службы для доставки всего, что необходимо для вашего приложения Silverlight. Я предлагаю вам использовать класс WebClient в сочетании с классом URI для получения данных. Пример:

Uri uri = new Uri(//the url of you webservice, UriKind.RelativeOrAbsolute);

Теперь создайте экземпляр класса WebClient и добавьте обратный вызов, который будет вызываться после завершения чтения из веб-службы:

WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(CallbackMethod);
wc.OpenReadAsync(uri);

Когда данные извлекаются с сервера, вызывается CallbackMethod. У метода есть объект EventArgs, который содержит свойство с именем result. Вы можете получить свои данные, используя это свойство.

...