0

C#のWindsor Inversion of Control (IoC) Getting Started exampleに従っていますが、VB.Net で実装していて、小さな問題が発生しました。

これが私が完全に取得している例外です:

満たすべき依存関係があるため、コンポーネント 'form.component' を作成できません。form.component は次の依存関係を待機しています:

サービス: - 登録されていない InversionOfControl.HttpServiceWatcher&。

しかし、私はそれを登録していると思います-それは登録された最初のものです!

VB 8 (Visual Studio 2005 / .Net 2.0) とWindsor 1.0 RC3を使用しています。


ここに私のApp.vb があります:

Castle.Windsor をインポートします。

パブリック クラス アプリ

    Public Shared Sub Main()

        Dim コンテナー As New WindsorContainer

        'コンポーネントを登録する
        container.AddComponent("httpservicewatcher", _
           GetType(HttpServiceWatcher))
        container.AddComponent("email.notifier", GetType(IFailureNotifier), _
           GetType(EmailFailureNotifier))
        container.AddComponent("alarm.notifier", GetType(IFailureNotifier), _
           GetType(AlarmFailureNotifier))
        container.AddComponent("form.component", GetType(Form1))

        'コンテナからコンポーネントをリクエスト
        Dim aForm As Form = container(GetType(Form1))

        'これを使って!
        Application.Run(フォーム)

        'それを解放
        container.Release(フォーム)

    サブ終了

クラス終了

フォーム1

パブリック クラス Form1

    HttpServiceWatcher としてのプライベート oServiceWatcher

    Sub New (ByRef ServiceWatcher As HttpServiceWatcher)

        ' この呼び出しは、Windows フォーム デザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後に初期化を追加します。
        Me.oServiceWatcher = ServiceWatcher
    サブ終了
クラス終了

HttpServiceWatcher

パブリック クラス HttpServiceWatcher

    IFailureNotifier としてのプライベート oNotifier

    Sub New (ByRef Notifier As IFailureNotifier)
        oNotifier = 通知者
    サブ終了

    サブ StartWatching()

        ' サービスを ping するスレッドを開始する必要があります
        'if (pingresult = 失敗)
        oNotifier.Notify()
        '終了する場合

    サブ終了

    サブストップウォッチング()

        'スレッドを停止

    サブ終了

クラス終了

IFailureNotifier

パブリック インターフェイス IFailureNotifier

    サブ通知()

終了インターフェイス

AlarmFailureNotifierEmailFailureNotifierはどちらも IFailureNotifier を実装していますが、Notify()メソッドは空です


IFailureNotifier を最初に、HttpServiceWatcher を 3 番目に、Form を最後に配置して順序を変更しようとしましたが、同じエラーが発生します。

クリーンアップと再構築を行いましたが、同じエラーが発生します。

私は明らかにこれに慣れていません(「はじめに」を行っているため)、見逃したことを指摘していただけますか?

ありがとうございます:o)

4

1 に答える 1