Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将AddComponentInstance转换为Register_C#_Castle Windsor - Fatal编程技术网

C# 如何将AddComponentInstance转换为Register

C# 如何将AddComponentInstance转换为Register,c#,castle-windsor,C#,Castle Windsor,AddComponentInstance的值为: WindsorContainer.Kernel.AddComponentInstance<T>(typeof(T), instance); WindsorContainer.Kernel.AddComponentInstance(typeof(T),instance); 这是过时的 它的替代品是: WindsorContainer.Register(Component.For<IClassParameters>().I

AddComponentInstance的值为:

WindsorContainer.Kernel.AddComponentInstance<T>(typeof(T), instance);
WindsorContainer.Kernel.AddComponentInstance(typeof(T),instance);
这是过时的

它的替代品是:

WindsorContainer.Register(Component.For<IClassParameters>().ImplementedBy<ClassParameters>());
WindsorContainer.Register(Component.For().ImplementedBy());
然而,我有一个门面:

public static void AddInstance<T>(object instance)
    {
        _iocManager.WindsorContainer.Kernel.AddComponentInstance<T>(typeof(T), instance);
    }
publicstaticvoidaddinstance(对象实例)
{
_iocManager.WindsorContainer.Kernel.AddComponentInstance(typeof(T),instance);
}
我看不出如何使用Register方法代替AddComponentInstance。
这是错误的:

_iocManager.WindsorContainer.Register(Component.For<T>().ImplementedBy<T>().Instance(instance));
\u iocManager.WindsorContainer.Register(Component.For().ImplementedBy().Instance(Instance));
我应该使用什么?

container.Register(Component.For().Instance(new Foo());
container.Register(Component.For<Foo>().Instance(new Foo());
答案是:

        public static void AddInstance<T>(T instance) where T : class 
    {
        _iocManager.WindsorContainer.Register(Component.For<T>().Instance(instance));
    }
publicstaticvoidaddinstance(T实例),其中T:class
{
_iocManager.WindsorContainer.Register(Component.For().Instance(Instance));
}

注意,方法签名迫使编译器将T作为一个类,从而作为一个Ref变量

No,这不起作用