---
id: appmessenger
title: 应用信使
---

## 一、说明
应用信使是在进程内的，行使注册和触发功能的组件。可**代替事件**，可**跨越程序集**，可**依赖倒置**。

## 二、使用


【声明主体】
实现IMessageObject接口，然后增加AppMessage标记的公共方法。
```csharp
public class MessageObject : IMessageObject
{

    [AppMessage]
    public int Add(int a, int b)
    {
        return a + b;
    }

    [AppMessage]
    public int Sub(int a, int b)
    {
        return a - b;
    }
}

```
【注册】
下列演示时，是新实例化的AppMessenger，实际上，用户可以直接使用AppMessenger.Default默认实例。
```csharp
AppMessenger appMessenger = new AppMessenger();
appMessenger.Register<MessageObject>();
```
【触发】
触发时，泛型类型，即时返回值类型。
```csharp
int add = appMessenger.Send<int>("Add", 20, 10);
Assert.Equal(30,add);

int sub = appMessenger.Send<int>("Sub", 20, 10);
Assert.Equal(10, sub);
```
