Unity-ConstructorInjectionwithOtherParameters类,我有以下RegisterType命令:DIContainer.Resolve()如您所见,我有一个名为“user”的字符串参数作为BatchService构造函数的一部分,它不是DI逻辑的一部分。如果我需要在BatchService类中使用“user”,我该如何最好地处理这种情况?在此先感谢您提供的任何帮助!请不要将Unity滥用为ServiceLocator。如果要创建需要运行时参数的对象,请使用工厂。您甚至可以使用Unity的TypedFactories版本放弃实现该工厂行为,或者让Unity为您生成工厂代理。您可以使用ParameterOverride。BatchServicebatchService=DIContainer.Resolve(newParameterOverride("user",valueForUser));首先,将ILogger与业务逻辑混合并不是一个好主意。可以直接在BatchService中创建ILogger,也可以通过[Dependency]属性解析。DI它不是万能的,业务对象的创建不应该依赖于ILogger使用newInjectionParameter("user")更多细节请看RegisterInjectedParametersandPropertyValues上面是C#学习教程:Unity-ConstructorwithAdditionalParametersInjectand分享所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
