Передача данных / объекта между сборками в WP7 - PullRequest
1 голос
/ 08 ноября 2011

Проект Windows Phone 7, над которым я работаю, имеет 2 интерфейса и базовый «движок» функциональности с некоторыми распространенными страницами. Мне бы хотелось, чтобы мой пользовательский интерфейс передавал объект на одну из этих общих страниц в базовой сборке.

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

Если я могу совместно использовать изолированное хранилище, я могу его использовать, я просто не уверен, как заставить эти две сборки использовать его вместе.

Какая лучшая практика?

Я попытался погуглить это: 'wp7 передать объект между сборками'

Подробнее:
Это будет 1 приложение с двумя сборками. Примерно так:

CustomerUI (проект)
- MainPage.xaml
- App.xaml

CoreFuncs (проект)
- CustomerData.cs
- EditCustomer.xaml

SalesRepUI (проект)
- MainPage.xaml
- App.xaml

И CustomerUI, и SalesRepUI будут использовать страницу EditCustomer и объект customerData. Таким образом, из MainPage создается экземпляр CustomerData, после чего пользователь может нажать «Редактировать пользователя», чтобы перейти на общую страницу EditCustomer.xaml. Мы бы хотели передать уже созданный экземпляр объекта CustomerData. (Для целей этого обсуждения ...)

Ответы [ 4 ]

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

Извините, извините, я нашел то, что хотел, я слишком много думал.PhoneApplicationService.Current.State["keyName"] = object; было именно то, что я хотел.Не уверен, что это лучший способ, но для меня это работает.Просто добавьте мой класс настроек или что-то там, и поймайте его на другой стороне в коде page.xaml.

1 голос
/ 08 ноября 2011

Это зависит от того, являются ли эти два отдельных приложения или две сборки?

Изолированное хранилище изолированно вокруг работающего приложения.Это означает, что каждое приложение имеет свое собственное хранилище, к которому нельзя получить доступ из другого приложения.Единственные способы обмена данными между двумя приложениями:

  1. Служба WebService / или TCP в версии 7.5: вы загружаете данные из одного приложения и загружаете данные в отдельное приложение.

  2. Выполненные пользователем задачи: копирование и вставка / отправка электронной почты

Однако, если это только одно приложение, вы сможете получить доступ к изолированному хранилищумежду сборками, просто читая и записывая файлы.Единственная вещь, о которой следует знать, - это блокировка файлов, убедитесь, что вы закрываете файлы перед тем, как пытаться читать их из отдельной библиотеки / сборки.

1 голос
/ 08 ноября 2011

Насколько я знаю, существует одно изолированное хранилище на приложение, а не на сборку.Так что вы можете попробовать пропустить свои объекты через него, если хотите.

0 голосов
/ 08 ноября 2011

Я бы рекомендовал использовать класс Messenger в наборе инструментов MVVM Light: http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

Обе ваши сборки могут ссылаться на одну общую сборку;эта сборка может содержать тип, который используется для хранения данных, передаваемых через мессенджер.

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