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);
    }

我看不到如何使用 Register 方法而不是 AddComponentInstance。
这是错误的:

_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 作为 Class 并因此作为 Ref 变量的方法签名

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