C# 发送带有字符串的广播通知(UWP)

C# 发送带有字符串的广播通知(UWP),c#,xaml,uwp,C#,Xaml,Uwp,我需要在两个班级之间发送通知。 在安卓系统中,我使用了 Intent intent = new Intent(NOTIFICATION_KEY); intent.putExtra(ISFIRSTTIME, isfirsttime); LocalBroadcastManager.getInstance (AppDelegate.getContext()).sendBroadcast(intent); 并接受: private BroadcastReceiver multiselectR

我需要在两个班级之间发送通知。 在安卓系统中,我使用了

Intent intent = new Intent(NOTIFICATION_KEY);
intent.putExtra(ISFIRSTTIME, isfirsttime);     
LocalBroadcastManager.getInstance
(AppDelegate.getContext()).sendBroadcast(intent);
并接受:

private BroadcastReceiver multiselectReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {

}
};
[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(multiselectNotification:) 
name:kNotificationMultiselectController object:nil];
在IOS中:

[[NSNotificationCenter 
defaultCenter]postNotificationName:kNotificationMultiselectController 
object:[NSNumber numberWithBool:isFirstTime]];
并接受:

private BroadcastReceiver multiselectReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {

}
};
[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(multiselectNotification:) 
name:kNotificationMultiselectController object:nil];

在C#中有许多松散耦合的消息传递解决方案,没有UWP特定的解决方案。如果您使用MVVM框架构建应用程序,它可能也会包含一个——例如Prism有
EventAggregator
,MvvmCross有
MvxMessenger
,并且在MvvmLight中使用
MessengerDefault
。我会选择其中一个框架,并使用提供的messenger功能,因为它经过了战斗测试且稳定。您甚至不必使用完整的MVVM框架本身,只需使用事件聚合器组件。有关其工作原理的更多信息,请参见示例

最基本的解决方案是使用基本的C#事件,但这些是强引用,这意味着您需要记住取消订阅已注册的事件,否则订阅者将保留在内存中