0

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

正確にどのオブジェクトが期待されているかを誰か説明してもらえますか?

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

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

1 に答える 1

0

わかりました、問題は解決しました。どうやらこの場合、宣言の順序が重要です。また、「サービス」をサポートしていないため、タイプに直接サブスクライブする必要があります。

  <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>
于 2009-03-09T03:20:39.027 に答える