Самостоятельные результаты содержатся в .xap - PullRequest
2 голосов
/ 11 января 2011

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

Ответы [ 2 ]

2 голосов
/ 11 января 2011

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

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

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

1 голос
/ 11 января 2011

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

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

Поскольку XAP является файлом ZIP , вы можете обновить его с помощью библиотеки ZIP и использовать библиотеку Mono.Cecil, чтобы изменить жестко запрограммированный массив в сборке внутри ZIP. (Или обновите встроенный текстовый файл)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...