我有一个控制台应用程序A和一个Web应用程序B,其中A需要在B中使用服务类。为了处理依赖关系,我试图在B中制作一个在A的Main方法中注册的autofac模块:
public class ImageServiceModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<ImageService>().As<IImageService>();
...
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json");
var configuration = configurationBuilder.Build();
var services = new ServiceCollection();
services.Configure<StorageSettings>(configuration.GetSection("StorageSettings"));
builder.Populate(services);
}
}
现在,问题在于,因为程序是在A的上下文中运行的,所以B从A读取appSettings ...
是否有一种方法可以使从B的appsettings读取模块中注册的服务?还是autofac模块首先在这里使用错误的方法?
请记住,在部署管道中使用.config文件转换非常普遍,因此,您真的要部署两个具有不同配置的不同应用程序吗?如果没有,那么将confing放入正在运行的应用程序中应该很有意义。
让我知道您的想法! Rgrds!
配置文件旨在针对每个应用程序。这意味着您将为每个应用程序拥有一个配置文件。对于您的情况,您将为控制台应用程序配置一个配置文件,为网络应用程序配置一个配置文件。
如果两个应用程序都应用了某些设置,通常会在每个配置文件中重复这些设置。
如果您希望为应用程序的一部分提供一个配置文件,则可以使用自定义设置文件创建一个库项目。
假设您有A
和B
,您可以创建一个名为C
的新库项目,该项目将同时被A
和C
引用。然后,可以在C
中创建一个c.settings.json
文件,并在配置文件中使用它。