2016-01-25 2 views
-1

Я использовал PushSharp DDL, Я пытаюсь сохранить статус отправки уведомления в моей базе данных. на NotficationSent Event, я буду обновлять свою базу данных со статусом = TRUE, где NotificationID = XXXX NotficationSent событие включает в себя мой JSON, который я толкнул в параметре (уведомление)PushSharp «get json on NotificationSent» issue

Я пытаюсь получить мою JSON в SentNotification Event знать Мой NotificationID I написал этот код, но он не сработал.

static void NotificationSent(object sender, INotification notification) 
    { 
var push = (PushSharp.Android.GcmNotification)notification; 
    json =Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic(push.JsonData); 
    var NotificationID=json.NotificationID 
    } 

код не завершен запуск он остановился на этой линии, без ошибок и функция выхода, я не могу получить NotificationID в моей переменной

json =Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic(push.JsonData); 

ответ

0

INotification является лишь интерфейсом и JsonData свойство не является частью этого интерфейса. Экземпляр параметр, передаваемый в не на самом деле может быть GcmNotification типа, так что вы должны проверить, чтобы убедиться, что он и тогда дело к нему:

static void NotificationSent(object sender, INotification notification) 
{ 
    var gcmNotification = notification as GcmNotification; 
    if (gcmNotification != null) { 
    var json = JObject.Parse (gcmNotification.JsonData); 
    var notificationId = json["NotificationID"].ToString(); 
    } 
} 
+0

спасибо, это как мой код, но когда я бегу и отлаживать этот код , код не завершен, он остановлен в нижней строке и выходит из функции var json = Newtonsoft.Json.JsonConvert.DeserializeObject (gcmNotification.JsonData); после выше строки остальная часть кода не запускается, чтобы получить NotificationID эта строка не запускалась, потому что функция - это выход var notificationId = json.NotificationID; – rol

+0

Я обновил свой пример, чтобы не использовать десериализацию ... Это должно просто захватить значение «NotificationID» из объекта json. Имейте в виду, что 'JsonData' имеет все, что * вы * вложили в него, так что вы несете ответственность за добавление пары« ключ/значение »NotificationID, если вы хотите, чтобы она была доступна в этом случае. – Redth

+0

спасибо, ваш код работает со мной – rol