Mvvm Light 框架下的消息传递

1、Messenger.Default.Send<string>("Messenger");

    原型:Public virtual void Send<TMessage>(TMssage message);

    摘要:将消息发送到注册该消息将达到所有收件人,注册这个消息类型使用的注册方法

    类型参数:消息将发送的类型

    参数:消息发送到注册

2、public Class MyClass{}

  Messenger.Default.Send<string,MyClass>("Messenger");

    原型:Public virtual void Send<TMessage, TTarget>(TMessage message);

    摘要:将消息发送到注册者。该消息只会到达(注册这个消息类型使用的注册方法并且使用相同的目标类型)。

    参数类型:消息将发送的类型

         收件人将收到的消息的类型该消息将不会被发送到另一个类型的收件人

    参数:消息将发送的类型

3、Messenger.Default.Send<string>("Messenger", "ChildPage1ViewModel");

    原型:Public virtual void Send<TMessage>(TMessage message,object token);

    摘要:将消息发送到注册者。该消息只会到达(注册这个消息类型使用的注册方法并且使用相同的目标类型)。

    参数类型:消息将发送的类型

    参数:消息将发送的类型

       一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被

       发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送          

       没有带有标志、或不同的标志,将不会发送到收件人。

1、Messenger.Default.Register<string>(this,
                m =>
                {
                    //MainPageMessenger = m.ToString();
                });

    原型:public virtual void Register<TMessage>(object recipient, Action<TMessage> action);

    摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,注册一个收

       注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。

 

       Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.

    类型参数:消息的收件人登记类型

    参数:收件人将收到的消息

         消息发送时,执行的动作

2、Messenger.Default.Register<string>(this, "ChildPage1ViewModel",
                m =>
                {
                    MainPageMessenger = m.ToString();
                });

    原型:public virtual void Register<TMessage>(object recipient, object token, Action<TMessage> action);

    摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,注册一个收

       注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。

 

       Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.

    类型参数:消息的收件人登记类型

    参数:收件人将收到的消息

         一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被

       发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送          

       没有带有标志、或不同的标志,将不会发送到收件人。

         消息发送时,执行的动作

 3、Messenger.Default.Register<string>(this, false,
                m =>
                {
                    MainPageMessenger = m.ToString();
                });

      原型:public virtual void Register<TMessage>(object recipient, bool receiveDerivedMessagesToo, Action<TMessage> action);

      摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,看到receiveDerivedMessagesToo这个参数描述从TMessage得到消息(或者,如何TMessage是一个接口,messages实现TMessage)注册一个收注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。

 

       Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.

    类型参数:消息的收件人登记类型

    参数:收件人将收到的消息

         如果true,消息类型从TMessage将会传递到收件人,例如,如果一个SendOrderMessage和一个ExecuteOrderMessage来自OrderMessage,为OrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给收件人。同时,如果TMessage是一个接口,message类型实现了TMessage也将会传递给收件人。例如,如果SendOrderMessage和一个ExcuteOrderMessage实现了IOrderMessage接口,为IOrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给那个注册了的收件人。

         消息发送时,执行的动作

 4、Messenger.Default.Register<string>(this, "ChildPage1ViewModel", true,
                m =>
                {
                    MainPageMessenger = m.ToString();
                });

    原型:public virtual void Register<TMessage>(object recipient, object token, bool receiveDerivedMessagesToo, Action<TMessage> action);

    摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,看到receiveDerivedMessagesToo这个参数描述从TMessage得到消息(或者,如何TMessage是一个接口,messages实现TMessage)注册一个收注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。

 

       Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.

    类型参数:消息的收件人登记类型

    参数:收件人将收到的消息

       一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送没有带有标志、或不同的标志,将不会发送到收件人。

        

      如果true,消息类型从TMessage将会传递到收件人,例如,如果一个SendOrderMessage和一个ExecuteOrderMessage来自OrderMessage,为OrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给收件人。同时,如果TMessage是一个接口,message类型实现了TMessage也将会传递给收件人。例如,如果SendOrderMessage和一个ExcuteOrderMessage实现了IOrderMessage接口,为IOrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给那个注册了的收件人。

         消息发送时,执行的动作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/gengyuanchao/archive/2013/01/27/2878525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值