教程:
发布消息
Xamarin.Forms.MessagingCenter.Send
消息订阅
Xamarin.Forms.MessagingCenter.Subscribe
取消消息订阅
Xamarin.Forms.MessagingCenter.Unsubscribe
tips:
注意renderer进行pub/sub的时候要进行相关的unsubscribe,否则app会crash
后话:
Xamarin.Forms库本身已经带有支持消息发布订阅模式(Pub/Sub)的实现了。
一个比较正常的用法是直接在share层(.Net Standard引用了Xamarin.Forms的一层)内进行业务开发,那传递参数的类型都可以是各种类,如.net standard类或者forms的ui类。
另外一个场景是,当我们在进行层与层之间的消息触发的时候,需要注意使用通用的类,比如object、string、int等元类,也可以用自定义类,注意不要使用native独有的类即可,因为假设我们的解决方案是Xamarin.Forms+iOS+Android,每一个native层特有的原生类是Share层没有的,例如需要iOS的NSString数据发送到.Net Standard,因为.Net Standard是没有mono的NSString的。这时候可能会想到让.Net Standard层引用native层达到两层的类都共用,但ide会报错不能互相套娃,因为native层已经引用.Net Standard层了。
另外一个需要注意的是教程提到renderer内使用pub/sub注意的事项。