Newtonsoft.JSON
является хорошим решением для подобных ситуаций. Кроме того, Newtonsof.JSON
работает быстрее других, таких как JavaScriptSerializer
, DataContractJsonSerializer
.
В этом примере вы можете:
var jsonData = JObject.Parse("your json data here");
Затем вы можете использовать jsonData для JArray
, и вы можете использовать для цикла для получения данных на каждой итерации. Кроме того, я хочу что-то добавить.
for (int i = 0; (JArray)jsonData["data"].Count; i++)
{
var data = jsonData[i - 1];
}
Работа с динамическим объектом и использование сериализации Newtonsoft - хороший выбор.
До сих пор единственное решение, которое я нашел, как только проблема происходит, состоит в том, чтобы очистить кэш Firefox.
А лучшее решение было бы намного лучше.
У меня была эта проблема поэтому теперь, когда я запускаю новое приложение, я установил версию блока на 0.0.0.1 и просто обновляю ее одной на каждом развертывании, кажется, решил его для меня. Тогда просто задержите его к 1.0.0.0 на выпуске.
Супер простая идея: просто добавьте поддельную строку запроса к URL.
<param name="source" value="app.xap?r12345"/>
Большинство серверов должно проигнорировать его и сервер, файл обычно - зависит от Вашего сервера. Если Вы становитесь действительно умными, Вы могли бы сделать страницу хостинга динамичной и автоматически добавить количество галочки или строку даты и времени к строке запроса. Это гарантирует, чтобы Вы получили кэширование, когда Вы хотите его, но вызываете загрузку, когда существует изменение.
Идеально, Ваш сервер должен сделать это для Вас. Но если нет...
Вы могли отправить HTTP-заголовки, чтобы препятствовать тому, чтобы он кэшировался:
Cache-control: no-cache
Pragma: no-cache
, Как Вы, это зависит от веб-сервера, который Вы используете.
Мы находимся также в той же ситуации, где мы хотим управлять, когда.XAP файл загружается на браузер.
подход, на который Вы могли бы хотеть смотреть, должен использовать Silverlight Изолированное устройство хранения данных в качестве "кэша", чтобы хранить Ваши.XAP файлы.
Выезд этот блог: IsolatedStorage как Silverlight возражают кэшу
Вы могли бы найти Кэширующееся Учебное руководство для веб-Авторов и Веб-мастеров полезный. Этот документ обсуждает различные кэши, через которые клиент и сервер взаимодействуют (браузер, прокси, шлюз) и как кэшированием можно управлять.
Я получаю это работать, сочетая приведенные выше предложения:
Установите свойство Source элемента управления ASP.NET Silverlight в исходном коде, добавив метку времени к URL-адресу .xap, например
Silverlight1.Source = "ClientBin / MyApplication.xap?" + DateTime.Now.ToString ("dd-MM-yy-HH: mm: ss");
Другим решением было бы добавить версию файла XAP, а не метку времени. Отметка времени будет меняться каждый раз (с таким же успехом можно отключить кеширование). Чтобы заставить его изменяться только после обновления XAP, нужно взять некоторую информацию из файла XAP. Все еще изучаю, что можно было бы использовать, возможно, последнюю измененную дату в XAP-файле?
Самый простой способ:
<param name="source" value="ClientBin/App.xap?<%= DateTime.Now.Ticks %>" />
Строка запроса работает отлично, но я бы не стал использовать DateTime.Now , потому что он заставляет пользователя каждый раз повторно загружать приложение. Вместо этого мы используем следующее:
protected void Page_Load(object sender, EventArgs e)
{
var versionNumber = Assembly.GetExecutingAssembly().GetName().Version.ToString();
this.myApp.Source += "?" + versionNumber;
}
Таким образом, все, что вам нужно сделать, это увеличить номер версии в файле AssemblyInfo.cs .
Это то, что я делаю в php. Вы читаете дату / время файла xap и добавляете его в качестве параметра к ссылке для загрузки. Таким образом, браузер видит новые версии файлов как новые ссылки, а значит, не в своем кэше.
<?php $fdate = date("dHis",filemtime("MyApp.xap")) ?>
<param name="source" value="MyApp.xap?=<?php echo $fdate ?>"/>
Просто и работает. Кроме того, браузеры продолжают правильно кэшировать, когда нет обновлений для загрузки.
Наш Семантический CloneDR Проектов - инструмент, который обнаруживает блоки программы «паста копии, редактируют», для многих языков: C, C++, Ява, C++, КОБОЛ, ECMAScript, PHP, VB6, VB.net...
Он использует синтаксические анализаторы с точностью до языка для построения абстрактных синтаксических деревьев, соответствующих точным структурам программ, которые затем сравниваются для подобия. Это означает, что он не путается ни в одном пути с помощью пробела, форматирования, комментариев или даже другого «написания» литералов (например, 3,14159 совпадает с 0,00314150E3).
Создается отчет, который показывает точно , как блоки кода похожи и точно различаются. По ссылке можно просмотреть примеры отчетов.
-121--3653723-Можно добавить исходный URL-адрес в тэге объекта с датой последней записи XAP-файла. Проверьте код в блоге .
Идея строки запроса не работает для меня в Silverlight 4. Кажется, сервер кэширует проклятый xap (но не файл aspx). Решение, которое действительно работает в SL4, - это перейти к свойствам вашего проекта Silverlight, перейти к информации о сборке и ввести версию.