2014-06-08 11 views
9

Pracuję przez kilka samouczków online uczących się Caliburn.Micro po raz pierwszy. Niektóre samouczki używają starszej wersji 1.3.0, używam nowszej wersji 2.0.0.6, która była najnowszym pakietem Nuget, który jest prawdopodobnie źródłem tej rozbieżności:Caliburn.Micro IEventAggregator Metoda publikacji brakuje przeciążenia

Podczas próby opublikowania następującego komunikatu:

public void Red() 
{ 
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red))); 
} 

Kompilator zgłasza błąd informujący, że nie znaleziono przeciążenia. Jedyne przeciążenie dla Publish, które jest dostępne, ma następujący podpis: void Publish (komunikat obiektowy, Action marszałek)

Mam to do pracy przy użyciu metody wątku pracującego w tle pokazanego poniżej, ale w moim przypadku wydaje się to przesadą. Czy przeciążenie pojedynczego parametru zostało rzeczywiście usunięte z Caliburn.Micro?

Ponadto dokumentacja jest tutaj: https://caliburnmicro.codeplex.com/wikipage?title=The%20Event%20Aggregator nadal pokazują przykłady, używając bardziej podstawowego przykładu pojedynczego parametru, w którym wystarczy przekazać wiadomość. Czy najnowsza dokumentacja, która poprawnie opisuje wersję 2.0.0.6, znajduje się w dokumentacji?

public void Red() 
{ 
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red)), 
action => Task.Factory.StartNew(action)); 
} 

Wreszcie na punkty bonusowe:

Co to jest dobre dla 2. parametr inny niż publikowanie wiadomości na wątek tła? Czy ktoś może podać inny przykład tego, do czego może służyć to przeciążenie?

Odpowiedz

11

W wersji Caliburn Micro w wersji 2.0 metoda EventAggregator.Publish wykonuje również akcję, aby zorganizować wydarzenie. Aby zachować zachowanie sprzed wersji 2.0, należy zamiast tego przełączyć się na metodę EventAggregator.PublishOnUIThread. Instrukcje dotyczące migracji here zawiera informacje na temat niezgodności między 1,5 a 2,0.

Ogólnie uważam, że dokumentacja Codeplex jest nieco nieaktualna. Proszę zapoznać się z new dedicated web site dla najbardziej aktualnych documentation.

+0

Dziękuję Anders ... – Sean

+0

nie ma EventAggregator.PublishOnUIThread w 2.0.2 :( – oleksa

+0

udało mi ją .Publish (wartość, nowy EventAggregator(). PublishOnUIThread) gdzie PublishOnUIThread jest metodą rozbudowa z Caliburn .Microsoft.EventAggregatorExtensions – oleksa

Powiązane problemy