可以对Windows库项目实施依赖注入吗?

问题描述 投票:0回答:2

可以对Windows库项目实施依赖注入吗?还是图书馆没有实行这种设计模式?

.net design-patterns c#-4.0 dependency-injection lib
2个回答
0
投票

您当然可以。

例如,Microsoft使用其所有ASP.NET Core库进行此操作。它们都支持依赖注入。

易于使用的重要部分是确保库知道如何关联依赖关系。例如,Microsoft库都为ServiceCollection提供了扩展方法,因此我可以编写serviceCollection.AddLibraryName();,而不必自己添加所有必需的类。


0
投票

是的,可以。您可以像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();
© www.soinside.com 2019 - 2024. All rights reserved.