Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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# 在unity中解决单个接口的多个实现_C#_Unity Container_Unity Interception - Fatal编程技术网

C# 在unity中解决单个接口的多个实现

C# 在unity中解决单个接口的多个实现,c#,unity-container,unity-interception,C#,Unity Container,Unity Interception,我有以下情况: public interface IFoo { } public interface IFoo3 { } public class Foo4 : IFoo3 { } public class Foo1 : IFoo { } public class Foo2 : IFoo { Foo2 (IFoo object1, IFoo3 object2) } 在客户端: IUnityContainer container = new UnityContain

我有以下情况:

public interface IFoo { }

public interface IFoo3 { }

public class Foo4 : IFoo3 { }

public class Foo1 : IFoo { }

public class Foo2 : IFoo
{  
    Foo2 (IFoo object1, IFoo3 object2)   
}
在客户端:

  IUnityContainer container = new UnityContainer();
  container.RegisterType<IFoo, Foo1>("Foo1");
  container.RegisterType<IFoo3, Foo4>();
  container.RegisterType<IFoo, Foo2>("Foo2");

  IFoo3 obj = container.Resolve<IFoo3>(); //Resolve 1

  IFoo obj2 = container.Resolve<IFoo>(); //Resolve 2
IUnityContainer container=newunitycontainer();
container.RegisterType(“Foo1”);
container.RegisterType();
container.RegisterType(“Foo2”);
IFoo3 obj=container.Resolve()//决议1
IFoo obj2=container.Resolve()//决议2
resolve 2(参见注释)给出了一个找不到构造函数的错误

我基本上希望它能解析为Foo2类。我甚至尝试使用参数覆盖,但也不起作用


请在这方面帮助我。

在没有参数的情况下调用
Resolve
将获得未命名注册(未命名注册)的实例

在没有参数的情况下调用
ResolveAll
,可以获得所有命名注册的实例(不包括未命名注册)


你的
IFoo

没有未命名的注册。你的
Foo2
是一个装饰师。可能重复的请看:谢谢你,史蒂文……beefycode博客帮了大忙。