C# 没有情人的团结?

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

我正在使用Unity容器。我这样注册我的依赖关系-

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版本,以及更长的代码示例,如果您有一个例外,请提供一个例外。