gpt4 book ai didi

c# - 在 MVVMLight 中接收派生类型的消息

转载 作者:行者123 更新时间:2023-11-30 14:42:39 25 4
gpt4 key购买 nike

这个测试不应该通过吗:

[TestMethod]
public void derived_message_subscription()
{
bool handled = false;
Messenger.Default.Register<GenericMessage<baseClass>>(this, true, (msg) => handled = true);
Messenger.Default.Send(new GenericMessage<testClass>(new testClass()));
Assert.IsTrue(handled);
}

public abstract class baseClass { }
public class testClass : baseClass { }

我必须接收从一个基类继承的类的所有消息。 MVVMLight 在 Register 方法中具有 bool 属性 receiveDerivedMessagesToo,但在我看来它不起作用。

请注意,当我不使用 GenericMessage 时,测试通过。它是 galasoft mvvm light 中的错误还是功能?

最佳答案

receiveDerivedMessagesToo意味着您将收到派生自您注册的消息类别的消息。这会起作用:

public class SpecificMessage : GenericMessage { }

据我所知,您不能注册到一个泛型并接收从该泛型派生的所有类型,因为 GenericMessage<testClass>不源自 GenericMessage<baseClass> .

关于c# - 在 MVVMLight 中接收派生类型的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2984136/

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