gpt4 book ai didi

c# - 轻量级消息库?

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:04 24 4
gpt4 key购买 nike

我一直在使用 EventAggregator来自 Caliburn.Micro几个星期了,真的很享受。我现在遇到的问题是说我的服务处理 3 种类型的消息。如果每种消息类型都需要不同的依赖项,我不得不将至少 3 个依赖项注入(inject)到我的构造函数中以处理消息。我唯一希望我的服务处理消息的时候是说我需要更改 UI 的状态。

理想情况下,我希望每个处理程序都是它自己的类。但是,它看起来不像 EventAggregatorCaliburn.Micro 提供创建处理程序类的实例。这样,即使每个消息处理程序需要不同的依赖项,也不会影响我的核心服务。

是否有替代的轻量级使用与 Caliburn.Micro 相同的接口(interface)?提供 IHandle<T> ,或类似 ConsumerOf<T> 的东西?由于所有消息传递都将在应用程序内完成,因此我不需要完整的服务总线。

最佳答案

我建议查看 MVVM Light's Messenger class .

例如,而不是

class MyMessageHandler : IHandle<Message>
{
void Handle( Message msg )
{
//Do something
}
}

你会做以下事情

class MyMessageHandler
{

ctor MyMessageHandler()
{
Messager.Default.Register<Message>( this, Handle );
}

void Handle( Message msg )
{
//Do something
}
}

任何想要发送消息的类都只需调用如下内容

Messanger.Default.Send( new Message( ... ) );

关于c# - 轻量级消息库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7175801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com