gpt4 book ai didi

workflow-foundation-4 - IObservable<> 缺少 .Subscribe 扩展方法

转载 作者:行者123 更新时间:2023-12-03 21:17:08 24 4
gpt4 key购买 nike

我正在使用 RX 扩展和 WF4 创建一个工作流,该工作流对可观察的消息使用react以推进工作流。为此,我引入了一个包含 IObservable 的对象(ModuleMessage 是我的抽象类。)我遇到的问题是 .Subscribe 无法识别其任何扩展方法,即用于 lambda 表达式/方法组的方法。在下面的代码中,我有引用:

using System.Activities;
using System.Activities.Hosting;
using System.Collections.Generic;
using System.Reactive.Linq;

还有以下代码行:
    internal void AddModuleCallback(IModule module)
{
if (!addedCallback)
{
addedCallback = true;
module.Messages.Where(m => m is MemberLeftModuleMessage || m is MemberRemovedModuleMessage).Subscribe(m => this.OnMemberExit(m)); // This line errors
}
}

internal void OnMemberExit(ModuleMessage message)
{
// Gizmo was fired, resume the bookmark
this.instance.BeginResumeBookmark(
new Bookmark(ModuleVisit.BookmarkName),
message is MemberLeftModuleMessage,
r => this.instance.EndResumeBookmark(r),
null);
}

随着编译时错误:
Error   1   Cannot convert lambda expression to type 'System.IObserver<Components.Messages.ModuleMessage>' because it is not a delegate type    <Removed>\WaitForModuleVisitExtension.cs    34  119 Components

请注意,这段代码改编自一个示例,并没有按照我的喜好进行分解,我纯粹关心手头的问题。我不是 RX 或 WF4 的专业人士,但在同一个解决方案的其他地方以这种方式使用过订阅。我已经通过 NuGet 将 RX 添加到这个项目中。

编辑:如果我用作方法组(而不是 lambda),则会出现以下错误:
Error   2   Argument 1: cannot convert from 'method group' to 'System.IObserver<Components.Messages.ModuleMessage>' <removed>\WaitForModuleVisitExtension.cs    34  119 Components

最佳答案

你缺少这个:

using System;

这是包含 ObservableExtensions 的命名空间带有所有 Subscribe 的静态类扩展方法。

通过 using“发现”扩展方法指令(以及尝试使用它们的代码的命名空间层次结构)。

关于workflow-foundation-4 - IObservable<> 缺少 .Subscribe 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521000/

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