C# · 12月 26, 2021

c# – 扩展类的依赖注入?

我使用Microsoft Unity作为我的IoC容器.我有许多扩展类,它为我的业务对象添加了有用的方法
这是我今天使用的那种代码: public static class BusinessObjectExtensions{ public static bool CanDoStuff(this BusinessObject obj) { var repository = BusinessHost.Resolver.Resolve<IRepository>(); var args = new EArgument { Name = obj.Name }; return repository.AMethod(obj.UserName,args); }}

有没有更好的方法来管理扩展类的依赖注入?

解决方法 实际上,您应该尝试避免使用extensionmethods,除非它们只处理内部数据(类本身的属性)或方法中提供的简单数据类型.您不应该在扩展方法中与其他依赖项进行对话.如果遵循此规则,则根本不需要在IoC中注入扩展类.