教程:

发布消息

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注意的事项。