0

次の AddComponentInstance:

WindsorContainer.Kernel.AddComponentInstance<T>(typeof(T), instance);

廃止されました。

それは次のとおりです。

WindsorContainer.Register(Component.For<IClassParameters>().ImplementedBy<ClassParameters>());

しかし、私はファサードを持っています:

public static void AddInstance<T>(object instance)
    {
        _iocManager.WindsorContainer.Kernel.AddComponentInstance<T>(typeof(T), instance);
    }

AddComponentInstance の代わりに Register メソッドを使用する方法がわかりません。
これは間違っています:

_iocManager.WindsorContainer.Register(Component.For<T>().ImplementedBy<T>().Instance(instance));

何を使えばいいですか?

4

2 に答える 2

1

答えは次のとおりです。

        public static void AddInstance<T>(T instance) where T : class 
    {
        _iocManager.WindsorContainer.Register(Component.For<T>().Instance(instance));
    }

コンパイラが T をクラスとして、したがって Ref 変数として受け取るように強制するメソッド シグネチャに注意してください。

于 2012-11-01T12:01:51.157 に答える
-1
container.Register(Component.For<Foo>().Instance(new Foo());
于 2012-10-29T20:54:58.070 に答える