1

与えられた:

public interface IFeedOperations : IOperationsWithPreInstalledData
{
    ...
}

public class FeedOperations : IFeedOperations
{
}

IFeedOperationsANDを実装するクラスにRegisterTypeを使用するにはどうすればよいIOperationsWithPreInstalledDataですか?

public class FeedsInstaller : IDependencyInstaller
{
    public void Install(IDependencyContainer container)
    {
        container.RegisterType(typeof(IFeedOperations), typeof(FeedOperations));
        container.RegisterType(typeof(IOperationsWithPreInstalledData), typeof(FeedOperations));
    }
}

現在のコードでは、次のエラーが発生します。また、2番目のRegisterTypeを削除すると、を呼び出しても結果が得られませんcontainer.ResolveAll<IOperationsWithPreInstalledData>()

コンポーネント...Feeds.FeedOperationsを登録できませんでした。その名前のコンポーネントはすでに存在します。代わりに、既存のコンポーネントを変更しましたか?そうでない場合は、必ず一意の名前を指定してください。

また、2番目のRegisterTypeを削除すると、を呼び出しても結果が得られませんcontainer.ResolveAll<IOperationsWithPreInstalledData>()IFeedOperationsCastle Windsorは、実装しているクラスがも実装していることを認識していないようですIOperationsWithPreInstalledData

実装クラスをCastleWindsorに登録して、クラスが両方のインターフェイスを実装していることを認識できるようにするにはどうすればよいですか。つまり、どちらかのインターフェイスをクラスで解決できるようにする方法です。

4

1 に答える 1

5
container.Register(Component.For<IFoo,IBar>().ImplementedBy<FooBar>());
于 2013-01-21T02:45:12.407 に答える