C# 试图理解事件聚合器模式

C# 试图理解事件聚合器模式,c#,events,design-patterns,eventaggregator,C#,Events,Design Patterns,Eventaggregator,我试图以一种简单的方式实现事件聚合器模式,以逐步了解它。但是我没有找到任何关于它的实现的书籍或视频教程。 我刚找到一些像这样的好文章,第一篇文章太大了,无法让我理解模式,第二篇还没有完成:)。 顺便说一下,我创建了我的类: public class Member { public int ID { get; set; } public string UserName { get; set; } } public class MemberService { public

我试图以一种简单的方式实现事件聚合器模式,以逐步了解它。但是我没有找到任何关于它的实现的书籍或视频教程。
我刚找到一些像这样的好文章,第一篇文章太大了,无法让我理解模式,第二篇还没有完成:)。
顺便说一下,我创建了我的类:

public class Member
{
    public int ID { get; set; }

    public string UserName { get; set; }
}

public class MemberService
{
    public void CommentSubmited()
    {
        // increase member score and do some other logic.
    }
}

public class Comment
{
    public int ID { get; set; }

    public string CommentBody { get; set; }

    public Member ByMember { get; set; }
}

public class CommentService
{
    public void SubmitNewComment(Member member, string commentBody, EventAggregator eventAggregator)
    {
        Comment comment = new Comment();
        comment.ByMember = member;
        comment.CommentBody = commentBody;

        db.SaveComment(comment); // save comment to the db

        //eventAggregator.GetEvent<CommentSubmited>.Fire();
    }
}

public class EventAggregator
{
    public void RegisterEvent()
    {

    }

    public void RemoveEvent()
    {

    }
}
公共类成员
{
公共int ID{get;set;}
公共字符串用户名{get;set;}
}
公共类会员服务
{
已提交的公共文件()
{
//增加成员分数并执行一些其他逻辑。
}
}
公开课评论
{
公共int ID{get;set;}
公共字符串注释体{get;set;}
公共成员ByMember{get;set;}
}
公共类评论服务
{
public void SubmitNewComment(成员成员、字符串commentBody、EventAggregator EventAggregator)
{
注释=新注释();
comment.ByMember=成员;
comment.CommentBody=CommentBody;
db.SaveComment(comment);//将注释保存到数据库
//eventAggregator.GetEvent.Fire();
}
}
公共类事件聚合器
{
公共无效注册事件()
{
}
公共无效删除事件()
{
}
}
我想要的是创建一种通用的方式,这样每当有新的注释创建时,就会触发
CommentSubmited()
方法。
我希望它是通用的,因为以后会有更多的服务,如RateService、QuestionService等等。。。。在MemberService类中,每个类都有一个
XXXSubmited()
方法

希望你明白我想学什么,问我是否想让我把事情说清楚


注意:我查看了,并认为它可能在这个问题上对我有所帮助,但无法按照我的要求制作。

使用Rx在一个简单的事件聚合器上查看这篇文章:

Karl Shifflett(Microsoft模式和实践团队)制作了一个示例,介绍了事件聚合器模式,并解释了如何在自己的东西WPF/MVVM应用程序中使用它。他有更多关于他的项目的信息,源代码也可以下载。在我学习的过程中,我发现他的示例应用程序和视频非常有用。

这篇文章很好,但我无法想象ISubject和Subject会是什么样子,他没有在他的示例中编写它们。如果有人在这里遇到问题,Amr发布了关于查找ISubject的帖子,有人指出它们是被动扩展: