Bob*_*orn 3 c# unity-container
我在这行代码上遇到错误:
using (IMaterialClient rawMaterialServiceProxy =
ServerUtility.Container.Resolve<IMaterialClient>())
Run Code Online (Sandbox Code Playgroud)
错误:
依赖关系的解析失败...当前类型Xxx是一个接口,无法构造.你错过了类型映射吗?
我没有注册具体的IMaterialClient.在我刚看过的Pluralsight视频中,他们说你不必注册所有类型,因为如果没有指定,Unity会找到一个实现.这改变了吗?我错过了什么吗?为什么不解决这个问题?运行此程序时,具有实际IMaterialClient实现的程序集位于bin文件夹中.
如果他们说关于Unity,他们就错了.Unity将解析具体的类型(.Resolve<MyClass>),但必须通过将接口与具体类型相关联来显式注册接口.
Unity Auto Registration等扩展可以提供这些功能; 我对他们没有经验.
我不知道Unity中的这个功能.据我所知,它将很乐意解决未注册的具体类型,但必须为任何抽象类型或接口注册具体类型.最好的办法是注册:
ServerUtility.Container.RegisterType<IMaterialClient, ConcreteMaterialClient>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14316 次 |
| 最近记录: |