Совместное использование блоков между Silverlight и “простым ванильным” .NET

map + fillna:

map позволяет нам заменить возраст для обычных URL, а затем .fillna восстанавливает значение для URL, которые не совпадают. Предполагается, что URL является уникальным ключом в df1:

df3 = df2.copy()
df3['Age'] = df3.URL.map(df1.set_index('URL').Age).fillna(df3.Age)

#            URL            Category Age
#0    google.com  [IAB19, BBCA]        A
#1   youtube.com  [IAB25, AACB]        H
#2   facebook.co  [IAB14, HLGB         A
#3    amazon.com  [IAB22, ETCL]        M
#4    wpedia.org  [IAB5, J TCL]        E
#5  example1.com   [LHTB, 2213]        A
#6  example2.com   [OPCL, 9909]        A
#7  example3.com   [PPRS, 7656]        A
6
задан Community 23 May 2017 в 12:06
поделиться

3 ответа

Путем я совместно использую код между Silverlight и нормальным CLR, должен использовать, "добавьте как ссылка" функция с проектами C#. Таким образом, это заканчивает тем, что было похоже на это:

| SilverlightLib
|   File1.cs
|   File2.cs
| ClrLib
|   File1.cs <as link>
|   File2.cs <as link>

Затем VS хорошо работает, и компилируются оба набора кода. Раздражающая часть - то, где платформа Silverlight приводит в порядок не строку. (WCF имеет некоторые части, которые не существуют в SL.) В этом случае необходимо будет использовать препроцессор "#if SILVERLIGHT", чтобы заставить код предназначаться для обеих платформ.

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

  • Всегда редактируйте из проекта SL - этот способ, которым редактор ограничит SL, и Вы не получите неожиданности позже.
  • Иногда необходимо закрыть открытый файл для Intellisense для обновления в другом проекте.
3
ответ дан 17 December 2019 в 07:09
поделиться

Существует два способа, которыми я сделал это в прошлом.

Первый и самый легкий. Добавьте Сервис WCF как ServiceReference в Silverlight. Это будет заботиться о регенерации всех библиотек классов и обновлении их при необходимости.

Во-вторых, сохраните две копии классов, один в Silverlight и один в сбросе .net 3.5. Затем удостоверьтесь, чтобы Названия DataContract и Пространства имен соответствовали. Если Вы добавите, что ServiceReference в Silverlight затем в проводнике просматривают папку ServiceReference и смотрят на файл Reference.cs, то Вы будете видеть сгенерированные классы и можете скопировать их.

1
ответ дан 17 December 2019 в 07:09
поделиться

Не уверенный, если это возможно в Вашем сценарии, но Вы думали об обеспечении Ваших объектов, сериализированных как Json Вашему клиенту Silverlight? Затем в Вашем приложении Silverlight можно использовать JsonObject в Silverlight. Тем путем Вы стараетесь не иметь другой набор объектов модели в Вашем приложении Silverlight.

JsonObject user = (JsonObject)JsonObject.Load(responseStream);
bool isMember = user["IsMember"];
string name = user["Name"];
int age = user["Age"];

Пример от этого образца MSDN

Хорошая вещь об этом подходе состоит также в том, что у Вас есть поддержка linq в Silverlight, и это применимо Вашими ajax клиентами также. Это также более безопасно, чем представление Ваших реальных объектов к приложению Silverlight, работающему на клиенте.

0
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

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