小编use*_*667的帖子

MassTransit消息使用者永远不会看到子类类型

这个问题涉及事件(基类事件和子类事件)和事件处理程序.我正在研究现有的代码,这似乎不像作者所期望的那样工作.我很难理解为什么它不起作用,所以我想了解在我尝试修复现有代码之前发生了什么.

我发现了以下问题,可能会或可能不会建议我需要为子类型事件创建一个额外的事件处理程序:

C#:提升继承的事件

如果制作一个额外的事件处理程序确实是解决方案,我仍然想知道为什么会这样.这是我的第一个问题,我确实试着在我的问题中寻找答案/解释,但真诚的道歉,如果它仍然是我应该很容易找到的东西.严厉的"RTFM!" 在这一点上,与我的教育联系会很好:)

我们有2个事件类,基类型和子类型.存在子类型事件以处理删除事件.

public class BaseTypeEvent
{
    public Guid Id { get; set; }
    public string Name { get; set; }

    public BaseTypeEvent()
    { }

    public BaseTypeEvent(SomeRandomThing item)
    {
        Id = item.Id;
        Name = item.Name;
    }
}

public class SubTypeEvent : BaseTypeEvent
{
    public DateTimeOffset Deleted { get; set; }

    public SubTypeEvent()
    {
        Deleted = DateTimeOffset.UtcNow;
    }
}
Run Code Online (Sandbox Code Playgroud)

这些事件的使用似乎失败了:

public class UsageClass
{   
    public UsageClass(IEventBusService eventBusService)
    {
        eventBusService.MyBaseTypeEvents += HandleMethod;
    }

    private void HandleMethod(BaseTypeEvent e) …
Run Code Online (Sandbox Code Playgroud)

c# events inheritance subclass masstransit

5
推荐指数
1
解决办法
844
查看次数

标签 统计

c# ×1

events ×1

inheritance ×1

masstransit ×1

subclass ×1