C# Unity-依赖项解析失败(未注册)

C# Unity-依赖项解析失败(未注册),c#,unity-container,C#,Unity Container,我在这行代码中遇到一个错误: using (IMaterialClient rawMaterialServiceProxy = ServerUtility.Container.Resolve<IMaterialClient>()) 使用(IMaterialClient RawMaterialService Proxy= ServerUtility.Container.Resolve()) 错误: 依赖项解析失败。。。当前类型Xxx是一个 接口,无法构造。是否缺少类型映射

我在这行代码中遇到一个错误:

    using (IMaterialClient rawMaterialServiceProxy =
ServerUtility.Container.Resolve<IMaterialClient>())
使用(IMaterialClient RawMaterialService Proxy=
ServerUtility.Container.Resolve())
错误:

依赖项解析失败。。。当前类型Xxx是一个 接口,无法构造。是否缺少类型映射


我不是在注册一个具体的IMaterialClient。在我刚刚观看的Pluralsight视频中,他们说您不必注册每种类型,因为如果没有指定一种类型,Unity将找到一个实现。这种情况改变了吗?我错过什么了吗?为什么这不能解决?运行此操作时,具有实际IMaterialClient实现的程序集位于bin文件夹中。

如果他们说的是Unity,那他们就错了。Unity将解析具体类型(
.resolve
),但必须通过将接口与具体类型关联来显式注册接口


还有一些扩展,例如提供这些特性;我没有使用它们的经验。

我不知道Unity中的这一特性。据我所知,它很乐意解析未注册的具体类型,但必须为任何抽象类型或接口注册具体类型。最好的办法是注册它:

ServerUtility.Container.RegisterType<IMaterialClient, ConcreteMaterialClient>();
ServerUtility.Container.RegisterType();