Ich arbeite durch einige Tutorials Online lernen Caliburn.Micro zum ersten Mal. Einige der Lernprogramme verwenden die ältere Version 1.3.0, ich verwende die neuere Version 2.0.0.6, die das neueste Nuget-Paket war, das wahrscheinlich die Quelle dieser Diskrepanz ist:Caliburn.Micro IEventAggregator Veröffentlichen Methode fehlt eine Überladung
Beim Versuch, die folgende Nachricht zu veröffentlichen:
public void Red()
{
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red)));
}
Der Compiler gibt eine Fehlermeldung aus, dass die Überladung nicht gefunden wurde. Die einzige Überladung für Veröffentlichen, die verfügbar ist, hat die folgende Signatur: void Veröffentlichen (Objektnachricht, Action-Marshal)
Ich habe dies mit der unten gezeigten Hintergrund-Worker-Thread-Methode funktioniert, aber in meinem Fall scheint es wie Overkill. Wurde die Überladung einzelner Parameter wirklich von Caliburn.Micro entfernt?
Auch die Dokumentation ist hier: https://caliburnmicro.codeplex.com/wikipage?title=The%20Event%20Aggregator noch zeigen Beispiele mit der mehr grundlegenden, Einzelparameter Beispiel, wo Sie einfach eine Nachricht übergeben. Ist die Dokumentation unter diesem Link die neueste, die 2.0.0.6 korrekt beschreibt?
public void Red()
{
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red)),
action => Task.Factory.StartNew(action));
}
schließlich für Bonuspunkte:
Was ist dieser zweite Parameter gut für andere als die Nachricht auf einem Hintergrund-Thread zu veröffentlichen? Kann jemand ein anderes Beispiel geben, für was diese Überladung verwendet werden kann?
Danke Anders ... – Sean
kein EventAggregator.PublishOnUIThread im :( – oleksa
2.0.2 ist ich es mit .Publish (Wert, neue Eventaggregator(). PublishOnUIThread) haben es geschafft, wo PublishOnUIThread ist eine Erweiterung Methode von Caliburn .Micro.EventAggregatorExtensions-Namespace – oleksa