gpt4 book ai didi

c# - 找不到 GetEvent(缺少指令/引用?) - 我做错了什么......?

转载 作者:行者123 更新时间:2023-12-03 10:43:35 25 4
gpt4 key购买 nike

在尝试构建事件聚合器以具有我的 object 的属性时转自MainViewModelSectionViewModel我已经尝试关注多篇文章( 1234 )关于它是如何工作的,但我似乎错过了一步..?

MainViewModel我有;

protected readonly IEventAggregator eventAggregator;
public MainViewModel(IMainViewModel mainViewModel, IEventAggregator eventAggregator)
{
...Some other Code...
this.eventAggregator = eventAggegator;
}

public Object Object
{
...Getter...
set
{
this.object = value;
this.RaisePropertyChanged();
this.EventAggregator.GetEvent<SetObjectEvent<Object>>().Publish(this.Object);
}
}

SectionViewModel我有;
protected readonly IEventAggregator eventAggregator;
public SectionViewModel(ISectionViewModel sectionViewModel, IEventAggregator eventAggregator)
{
this.eventAggregator = eventAggregator;;
this.eventAggregator.GetEvent<SetObjectEvent<Object>>().Subscribe((object) => { this.Object = object; });
}

谁都抛出了参数 excpetion The type or namespace name 'SetObjectEvent<>' could not be found .我认为这是因为我需要一个全局 EventAggregator,但有人指出事实并非如此。

这是大多数文章的要点,(至少对我而言)看起来并没有引起任何问题。这一切对我来说似乎都很合乎逻辑,我明白它应该做什么。然而,似乎没有一篇文章真正定义了“SetObjectEvent” Event ?而是创建某种通用的 EventAggregate就是这样。这就是我有点忘记正在发生的事情的地方。对我来说,这听起来很合乎逻辑,我需要有一个类似于“事件”的类,它可以保存项目中所有不同的可调用事件,但我不知道如何实现这一点?

编辑;如 this answer暗示我认为错的不是问题,我改写了我的问题以更准确地(?)描述我的问题。

编辑;根据要求 SetObjectEvent 类
public class SetObjectEvent<TRequest> : PubSubEvent<SetObjectEvent<TRequest>> where TRequest : IObject {}

源自 this SO article

编辑;将其更改为
public class SetObjectEvent : PubSubEvent<Object> {}

正如多条评论中所建议的那样,我在 GetEvent<SetObjectEvent>() 上都给出了相同的参数异常。和 GetEvent<SetObjectEvent<Object>>()

最佳答案

事实证明,问题是 在哪里 (只是一点点如何*)

我将 SetObjectEvent 放置在模型指令中,因为我认为它是事件的模型。我认为它会被 using MyProject.MyModule.Models; 正确引用在 MainViewModel 内命名空间。原来我在浏览更多关于 EventAggregator 的 SO 文章时错了。 SetObjectEvent应该以 namespace MyProject.MyModule.SetObjectEvent 的形式位于模块命名空间中.

*Seemingly it should be public class SetObjectEvent: PubSubEvent {} – dvorn

关于c# - 找不到 GetEvent<SetObjectEvent>(缺少指令/引用?) - 我做错了什么......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446466/

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