İş akışını ilerlemek için gözlemlenebilir iletilere yanıt veren bir iş akışı oluşturmak için RX uzantıları ve WF4 kullanıyorum. Bunu yapmak için, bir IObservable içeren bir nesneyi getiriyorum (soyut sınıfım olan ModuleMessage). Sahip olduğum sorun şu ki .Subscribe, uzantı yöntemlerini, yani lambda extresions/method grupları için herhangi birini tanımakta başarısız oluyor. AyrıcaIObservable <> eksik .Subscribe uzantı yöntemleri
using System.Activities;
using System.Activities.Hosting;
using System.Collections.Generic;
using System.Reactive.Linq;
Ve şu kod satırı: bir derleme zamanı hatası ile
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
unutmayın, bu aşağıdaki kodda, referansları var Kod bir örneklemden uyarlanmıştır ve benim beğenime dahil edilmemiştir, sadece eldeki problemle ilgileniyorum. Ben RX veya WF4 ile profesyonel değilim, ama aynı çözümde başka bir şekilde bu şekilde abone kullandım. Bu projeye NuGet üzerinden RX ekledim. Ben (yerine lambda) bir yöntem grup olarak kullanırsanız aşağıdaki hata:
Düzenleme
Error 2 Argument 1: cannot convert from 'method group' to 'System.IObserver<Components.Messages.ModuleMessage>' <removed>\WaitForModuleVisitExtension.cs 34 119 Components
Bahsettiğiniz örneğe bir bağlantı paylaşır mısınız? Bu oldukça ilginç görünüyor. Ben her zaman Gözlenebilirlerin serileştirilemediğini düşündüm, bu yüzden onları herhangi bir zamanda sebat için desteğe ihtiyaç duyan bir iş akışında nasıl kullanabilirsiniz? – julealgon
Bu çok uzun zaman önceydi, hatırlayamıyorum bile. Parlak bir şey tarafından dikkati dağılmadan önce bu noktaya hiç gelmediğimi düşünüyorum (bu kişisel bir proje idi) – Sprague