2009-03-09 7 views
0

私のCastle.Windsor IoVコンポーネントのイベントを配線するのに問題があります。それらのメソッドとシグネチャを確認したにもかかわらず、 "オブジェクトがターゲットタイプと一致しません"というメッセージで例外がスローされます。ProlemsはCastle.Windsor Frameworkのイベント加入者を配線します

誰でも正確に予想されるオブジェクトを説明できますか?誰もが尋ねる前にはい私が含まれている、

<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> 

私の配線は次のようになります

<facilities> 

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

</facilities> 

答えて

0

[OK]を、問題が明らかにこの場合、宣言の順序が重要で、解決しました。 Alos、それは "サービス"をサポートしておらず、タイプに直接加入しなければなりません。

<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> 
関連する問題