Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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 3,RegisterTypes方法在哪里?_C#_Dependency Injection_Inversion Of Control_Unity Container - Fatal编程技术网

C# Unity 3,RegisterTypes方法在哪里?

C# Unity 3,RegisterTypes方法在哪里?,c#,dependency-injection,inversion-of-control,unity-container,C#,Dependency Injection,Inversion Of Control,Unity Container,我刚下载了Unity 3,为我的新项目做了一次尝试。文档说明此版本允许使用container.RegiserTypes方法按约定注册。但我在任何地方都找不到这种方法。我是否缺少一个附加的DLL?我使用Nuget将Unity 3添加到我的项目中。您是如何获得DLL的?您确定您拥有正确版本的Unity吗?我使用Nuget添加了依赖项,一旦包含了Microsoft.Practices.Unity,它就可以工作了。版本是3.0.0。RegisterTypes是一种定义的扩展方法,如果只是添加了对IUni

我刚下载了Unity 3,为我的新项目做了一次尝试。文档说明此版本允许使用container.RegiserTypes方法按约定注册。但我在任何地方都找不到这种方法。我是否缺少一个附加的DLL?我使用Nuget将Unity 3添加到我的项目中。

您是如何获得DLL的?您确定您拥有正确版本的Unity吗?我使用Nuget添加了依赖项,一旦包含了Microsoft.Practices.Unity,它就可以工作了。版本是3.0.0。RegisterTypes是一种定义的扩展方法,如果只是添加了对IUnityContainer和UnityContainer的引用,则可能是问题的原因


在这个答案中,Unity的版本是第5版。*。 如果您意识到您的版本是5.0版或更高版本,则上述答案均不适用于您,因为按约定注册不再与Unity Core一起分发

Unity已被分解为一组软件包,供您仅安装所需的软件

如果您需要按照约定进行注册(RegisterTypes()方法就是使用这种方法的,那么您还需要安装NuGet软件包Unity.RegistrationByConvention(撰写本文时的版本2.1.0)


一旦安装了它,就会返回RegisterTypes()方法。

因此,这里的解决方案并不清楚。如果我没有看到这个方法(??!),我是缺少一个NuGet包还是一个引用?在示例代码中,我没有看到使用语句的
,也找不到任何使用该名称的nuget包。我的项目中引用了Microsoft.Practices.Unity(版本4.0.1)和M.P.U.配置。在您尝试在中使用方法的文件中,是否有使用Microsoft.Practices.Unity的
是,谢谢您的回复。我的问题是我安装了Unity作为对另一个包的依赖。该依赖项指定Unity版本>=2.0,因此我刚刚安装了版本2。我在其他地方安装了Unity,并在那里安装了4.0,这导致了混乱。4.0中有什么变化吗?我也有同样的问题,但是取消按约定注册的功能是毫无意义的。在版本
4.0.0.0
中,它可以在
Microsoft.Practices.Unity.RegistrationByConvention.dll
中找到,值得注意的是,您需要使用Unity.RegistrationByConvention添加
而不是使用Microsoft.Practices.Unity的
是的,谢谢你的提醒。