DI

6

için NEventStore bileşenlerinin nesne bileşimi Var olan projeme NEventStore ekliyorum ve DI kullanıyorum.DI

benim MVC denetleyicisi enjekte CommonDomain.Persistence.EventStore.IRepository bir örneğini almak istiyorum. Bu arabirimin The only implementation numarası EventStoreRepository'dur.
Bu sınıf IConstructAggregates bağlıdır ve only implementation I find Test projede yer alan dahili olarak işaretlenir ve çok garip bir dosya adı vardır AggregateFactory olduğunu.

Ben IRepository kullanmak gerekmiyor muyum? (Neden kamu olarak işaretlenir ve iç kodun herhangi biri tarafından tüketilen değil mi?) Ben agrega manipüle etmek için kullanılan örnek proje here ve IRepository üzerine arıyorum
. Ben IConstructAggregates kendim

Ya uygulamak gerekir? Ben de aynı şeyle mücadele ediyorum

cevap

3

, ben kısa bir cevap olduğunu düşünüyorum:

Eğer anlık kullanmıyorsanız, deney projesinde uygulanması iyi çalışacak. Aslında, bir anlık görüntü verildiyse bir istisna atmak için bir kod ekleyebilirim.

Anlık görüntüleri kullanıyorsanız, burada anlatılan birinin sonunda benzer bir yaklaşım kullanmak zorunda: Esasen http://williamverdolini.github.io/2014/08/20/cqrses-neventstore-snapshots/

, sorun, nesne iade edeceğimi olmasıdır IConstructAggregates, numaralı iletideki anlık görüntüyü hemen izleyen sürümde başlayan olay akışını üzerinde yeniden oynatır.

  • Eğer anlık destekleyen Agregalar varsa, zaten onlara GetSnapshot() uygulamak zorunda ve:

    sadece bir tahmin, ama bu nedenle "resmen" CommonDomain uygulanan olmayabilir düşünüyorum o Agregalar şekilde yeniden hidrat olabilir bir IConstructAggregates uygulaması oluşturmak isterdim (belki bir ISupportSnapshots arayüz?)

  • Bu sadece Activator.CreateInstance<T>() yerine, Agrega oluşturmak için DI kapsayıcı kullanmak isterdim mümkündür.

burada Test projesinden AggregateFactory aynı mantığı kullanır bu kod pasajı gibi görünüyor: - Ben halka desteklenmeye değil bu sınıfın nedenini bulduk düşünüyorum http://pastebin.com/cFESMiTz

+0

: o eksik ve düzgün test edilmemiş gibi görünüyor. Bu depo ile ilgili bir dizi sorun yaşıyorum ve zaten bir hata raporu verdim: https://github.com/NEventStore/NEventStore/issues/376 – trailmax

+0

Ve hayır, benim için anlık görüntü yok, ama sanırım bende Bu sınıftan kaçınmak için, onu kullanarak büyük sorunlar içine tökezlerken - ( – trailmax

+0

Ben geteventstore.com gibi bir şey kullanarak sonuna kadar gidiyorum ve CommonDomain projesinin değiştirilmiş bir sürümünü kullanarak düşünüyorum. bazı şeyler benim durum için çalışmaya ayarlama biraz ihtiyacım –

İlgili konular