如何使用UnityDependecyInjectionWebAPI实现Strategy/Facade模式如何告诉Unity.WebApi依赖注入框架注入正确的类在正确的控制器中?DI项目容器publicclassUnityContainerConfig{privatestaticIUnityContainer_unityContainer=null;publicstaticIUnityContainerInitialize(){if(_unityContainer==null){_unityContainer=newMicrosoft.Practices.Unity.UnityContainer().RegisterType("MyClass1").RegisterType("MyClass2")}}-MVCPROJECT-公共静态类UnityConfig{publicstaticvoidRegisterComponents(){GlobalConfiguration.Configuration.DependencyResolver=newUnityDependencyResolver(DependencyInjection.UnityContainer.UnityContainerConfig.Initialize());IMyInterface_myInterface///MyClass1publicXController(IMyInterfacemyInterface){_myInterface=myInterface}控制器2:privateIMyInterface_myInterface///MyClass2publicYController(IMyInterfacemyInterfaceface){_myInterface=myInterface}与其使用策略或门面来解决这个问题,更好的解决方案是重新设计你的界面,让每个控制器都是独一无二的一旦你拥有了唯一的界面类型,你的DI容器就会自动将正确的服务注入到每个控制器。选项1使用通用接口。publicinterfaceIMyInterface{}publicclassXController{privatereadonlyIMyInterfacemyInterface;publicXController(IMyInterfacemyInterface){this.myInterface=myInterface;}}publicclassYController{privatereadonlyIMyInterfacemyInterface;publicYController(IMyInterfacemyInterface){this.myInterface=myInterface;}}选项2使用接口继承。以上就是C#学习教程:HowtousetheUnityDependecyInjectionWebAPItoimplementtheStrategy/Facademode。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——publicinterfaceIMyInterface{}publicinterfaceIXMyInterface:IMyInterface{}publicinterfaceIYMyInterface:IMyInterface{}publicclassXController{privatereadonlyIX我的界面我的界面;publicXController(IXMyInterfacemyInterface){this.myInterface=myInterface;}}publicclassYController{privatereadonlyIYMyInterfacemyInterfacemyInterface;publicmyInterface){this.myInterface=myInterface;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
