ile IHandle implementors eventaggregator.Subscribe() çağrısı:Caliburn.Micro. Otomatik olarak yazarlar böyle bir olasılık söz <strong>Caliburn.Micro</strong> belgelerinde AutoFac
IHandle bir işaretleyici arayüzünden IHandle devralır. Bu, bir nesne örneğinin herhangi bir etkinliğe abone olup olmadığını belirlemek için döküm kullanımı sağlar. Bu, bir IoC konteynerine entegre ederseniz, basit otomatik abone olmanızı sağlar. En IoC kapsayıcılar (SimpleContainer dahil), yeni bir örnek oluşturulduğunda çağrılmak üzere bir kanca sağlar. Kapsayıcınızın geri araması için kablo yapıp, IHandle'ı uygulayıp uygulamadığını görmek için yaratılan örneği inceleyin ve eğer varsa, olay toplayıcıya abone olun.
Bunu Autofac ile nasıl başarmak mümkündür?
dekoratör'un özelliklerini kullanmayı denedim, ancak tabi ki bu durum için uygun olmayan bir yöntem. Daha fazla, varsayılan olarak IHandle <> uygulamacılarım, kapsayıcıda IHandle örnekleri olarak kaydedilmiyor.
P.S. Bu hatalı uygulama, herhangi bir kullanım olabilir şüphesiz olsa da.
builder.RegisterInstance<IEventAggregator>(new EventAggregator());
builder.RegisterDecorator<IHandle>((container, handler) =>
{
var eventAggregator = container.Resolve<IEventAggregator>();
eventAggregator.Subscribe(handler);
return handler;
}, "unsubscribed", "subscribed");
Doh, yine bitiş çizgisinde dayak! :) –
Mevcut gereksinimlerimi gerçekten tatmin ediyor. Teşekkürler! – Alec