2009-03-09 5 views
0

Ich habe Probleme bei der Verdrahtung der Ereignisse für meine Castle.Windsor IoV-Komponenten. Obwohl ich die Methoden und die Signaturen für sie bestätigt habe, wird eine Ausnahme mit der Meldung "Objekt stimmt nicht mit dem Zieltyp überein" ausgegeben.Proles Wiring Event-Abonnenten in Castle.Windor Framework

Kann mir bitte jemand erklären, welches Objekt genau das erwartet?

Meine Verdrahtung wie folgt aussieht:

<component 
    id="mailManager" 
    service="Pop3Dispatcher.Mail.IMailManager, Pop3Dispatcher" 
    type="Pop3Dispatcher.Mail.DefaultMailManagerImpl, Pop3Dispatcher" 
    startable="true" 
    loadCompletedMethod="Init"> 
    <subscribers> 
     <subscriber id="emailFilterImpl" event="MessageRecieved" handler="OnReceivedMessage"/> 
    </subscribers> 
    </component> 

    <component 
    id="emailFilterImpl" 
    service="Pop3Dispatcher.Filters.IFilter, Pop3Dispatcher" 
    type="Pop3Dispatcher.Filters.EmailFilterImpl, Pop3Dispatcher" 
    startable="true"> 
    </component> 

Bevor jemand fragt, ja, ich habe enthalten:

<facilities> 

    <facility 
     id="event.wiring" 
     type="Castle.Facilities.EventWiring.EventWiringFacility, Castle.MicroKernel" /> 

</facilities> 

Antwort

0

Ok, Problem gelöst, offenbar in diesem Fall die Reihenfolge der Erklärung Angelegenheiten. Alos, es unterstützt keine "Dienste" und muss direkt vom Typ abonniert werden.

<component 
    id="emailFilterImpl" 
    type="Pop3Dispatcher.Filters.EmailFilterImpl, Pop3Dispatcher" 
    startable="true"> 
    </component> 

    <component 
    id="mailManager" 
    type="Pop3Dispatcher.Mail.DefaultMailManagerImpl, Pop3Dispatcher" 
    startable="true" 
    loadCompletedMethod="Init"> 
    <subscribers> 
     <subscriber id="emailFilterImpl" event="MessageRecieved" handler="OnReceivedMessage"/> 
    </subscribers> 
    </component>