Что самый портативный путь состоит в том, чтобы сделать.NET Silverlight & Regular клиентом REST

Не нужно беспокоиться о exec и прочем, используйте тот факт, что функции python являются объектами и, таким образом, могут передаваться как аргументы

def try_or_zero(exp):
    try:
       return exp()
    except:
       return 0

И просто вызвать try_or_zero(my_awesome_func) (без () ваш метод)

5
задан damageboy 10 November 2008 в 11:06
поделиться

2 ответа

Я почти очень не хочу предложить это, но Вы чувствовали бы себя довольными перереализацией класса WebChannelFactory <T>?

От поверхностного взгляда до API Silverlight похоже, что Вы не получите много справки от Microsoft из поля. Необходимо было бы повторно реализовать класс канала и фабрику для него.

Возможно, другой способ создать канал и изолировать себя от определенного для платформы кода состоит в том, чтобы создать пользовательскую реализацию его? Конкретно то, что я имею в виду, Вы создаете еще один класс фабрики, и класс фабрики или звонит в WebChannelFactory, когда это доступно, или проходит обручи установки его для Вас.

Извините у меня нет более всестороннего предложения.:)

1
ответ дан 15 December 2019 в 01:14
поделиться

Если это - простой сервис REST Xml, почему бы не использовать WebClient в Silverlight для получения XML использование Linq к XML? Я знаю, что Вы сказали, что его грязное, но все это зависит от того, как Вы смотрите на него. при изменении сервисного интерфейса в любое время, Вы оказываетесь перед необходимостью обновлять свой код в нескольких местах. Это - просто способ, которым это.

Таким образом, чтобы сделать это, необходимо будет собрать данные асинхронным способом от WebClient и затем проанализировать его с LINQ к XML.

Время Heuer имеет хороший пример на его сайте: http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx

По существу это похоже на это:

WebClient rest = new WebClient();
rest.DownloadStringCompleted += new DownloadStringCompletedEventHandler(rest_DownloadStringCompleted);
rest.DownloadStringAsync(new Uri("http://example.org/current-status/xml"));

Затем в Вашем "rest_DownloadStringCompleted" Вы проанализировали бы строку как XML. Как так:

string data = e.Result;
string url = string.Empty;

XDocument doc = XDocument.Parse(e.Result);
var myResults = from results in doc.Descendants("myXmlElement") ... blah blah blah 

Я сделал то же самое с REST Services собственной разработки от WCF и Silverlight, и это работало отлично.

1
ответ дан 15 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: