可以对Windows库项目实施依赖注入吗?还是图书馆没有实行这种设计模式?
您当然可以。
例如,Microsoft使用其所有ASP.NET Core库进行此操作。它们都支持依赖注入。
易于使用的重要部分是确保库知道如何关联依赖关系。例如,Microsoft库都为ServiceCollection
提供了扩展方法,因此我可以编写serviceCollection.AddLibraryName();
,而不必自己添加所有必需的类。
是的,可以。您可以像Windows窗体一样执行Asp.net核心,而无需使用其他库,例如autofac(如果您也可以使用它)和.net,例如https://autofac.org/,则可以注册服务,回购,单例。 >
var builder = new ContainerBuilder();
// Register individual components
builder.RegisterInstance(new TaskRepository())
.As<ITaskRepository>();
builder.RegisterType<TaskController>();
builder.Register(c => new LogManager(DateTime.Now))
.As<ILogger>();
// Scan an assembly for components
builder.RegisterAssemblyTypes(myAssembly)
.Where(t => t.Name.EndsWith("Repository"))
.AsImplementedInterfaces();
var container = builder.Build();