C# 没有情人的团结?
我正在使用Unity容器。我这样注册我的依赖关系-C# 没有情人的团结?,c#,.net,inversion-of-control,unity-container,C#,.net,Inversion Of Control,Unity Container,我正在使用Unity容器。我这样注册我的依赖关系- container.RegisterType<IMyService, MyService>(); container.Resolve<IMyService>(); container.RegisterType(); 我希望像这样解决这个问题- container.RegisterType<IMyService, MyService>(); container.Resolve<IMyService
container.RegisterType<IMyService, MyService>();
container.Resolve<IMyService>();
container.RegisterType();
我希望像这样解决这个问题-
container.RegisterType<IMyService, MyService>();
container.Resolve<IMyService>();
container.Resolve();
但是没有无参数的Resolve
。我唯一的选择是必须给出类型、“名称”(字符串)和ResolverOverride数组
为什么我不能解析我注册的接口?根据使用情况有不同类型的解析。您可以按类型解析、按注册名称和类型解析、解析类型的所有对象以及使用替代进行解析。这取决于您在上面的示例中尝试的依赖项类型 您的注册和解决方案应该可以。我要说的问题是,要么你没有使用Microsoft.Practices.Unity执行
代码>(通用解析是扩展方法)或您注册的容器与您解析的容器不相同
如果您不想使用Microsoft.Practices.Unity执行代码>,则必须执行类似操作才能不使用泛型方法:
IMyService myService = (IMyService)container.Resolve(typeof(IMyService));
如果在解析时添加断点,检查容器,发现没有注册,这可能意味着您没有使用相同的容器实例。我添加了一个答案,但如果没有帮助,您能否提供您正在使用的Unity版本,以及更长的代码示例,如果您有一个例外,请提供一个例外。