using Sanhe.Abp.RealTime.Localization; using Newtonsoft.Json; namespace Sanhe.Abp.Notifications; public class NotificationDataConverter { public static NotificationData Convert(NotificationData notificationData) { if (notificationData != null) { if (notificationData.NeedLocalizer()) { // 潜在的空对象引用修复 if (notificationData.ExtraProperties.TryGetValue("title", out var title) && title != null) { var titleObj = JsonConvert.DeserializeObject(title.ToString()); notificationData.TrySetData("title", titleObj); } if (notificationData.ExtraProperties.TryGetValue("message", out var message) && message != null) { var messageObj = JsonConvert.DeserializeObject(message.ToString()); notificationData.TrySetData("message", messageObj); } if (notificationData.ExtraProperties.TryGetValue("description", out var description) && description != null) { notificationData.TrySetData("description", JsonConvert.DeserializeObject(description.ToString())); } } } else { notificationData = new NotificationData(); } return notificationData; } }