2011-01-11 1 views
2

Удивление, если это возможно. Я делаю небольшую игру для веселого офисного проекта и должен иметь таблицу с высоким рейтингом, которая сама содержится в реальном Silverligth xap. Есть какой-либо способ сделать это?Высокие баллы, содержащиеся в .xap

+0

Если вы опишете свои требования более подробно, мы сможем предложить более разумные альтернативы, о которых вы не подумали. Изменение XAP на самом деле не является жизнеспособным вариантом, как уже указывали ответы. – Sander

ответ

1

Возможно, но это, вероятно, не очень хорошая идея.

Вам понадобится сценарий на стороне сервера, который получит оценку и обновит XAP.
Поскольку XAP является (предположительно) большим файлом, обновление его потребует времени, оставив вас открытыми для условий гонки или проблем с доступом.
Вы можете заблокировать файл, что приведет к длительным задержкам, если несколько человек сразу представят рекорды.

С the XAP is a ZIP file вы можете обновить его с помощью ZIP-библиотеки и использовать библиотеку Mono.Cecil для изменения жестко запрограммированного массива в сборке внутри ZIP. (Или обновить встроенный текстовый файл)

+0

Мне было малоинтересно, что вы сказали об «обновлении его с помощью ZIP-библиотеки». Можете ли вы усовершенствовать этот вопрос. –

+0

Вы можете использовать что-то вроде SharpZipLib для изменения содержимого ZIP или XAP-файла. – SLaks

2

Нет, это не так: вы можете иметь таблицу, хранящуюся как данные (т. Е. В файле XML), но вы не можете изменить файл и обновить его внутри файла XAP (не разумно - см. Ответ SLak).

Вместо этого вы можете использовать Isolated Storage для хранения локальных копий ваших высоких баллов - обратите внимание, что этот файл предназначен для каждого пользователя на машине, поэтому вы не можете использовать один файл среди нескольких пользователей. Другой вариант - использовать веб-службу (asmx или WCF), которая может быть размещена на том же веб-сайте, который обслуживает файл XAP. Вебсервис может хранить высокие баллы, но он любит, и все пользователи смогут получить доступ ко всем баллам.

Если вы используете SL4 и Windows Phone 7, вы также можете отправлять push-уведомления на телефон при высоких обновлениях баллов. (Вы можете сделать это с помощью обычного настольного приложения SL, а также с помощью двустороннего обмена сообщениями WCF, но я не знаю достаточно об этом, чтобы комментировать).