У меня есть кусок устаревшего кода, который мне нужен для оптимизации. Он предназначен для просмотра серии каталогов и выполнения операций в файлах, выпущенных в эти каталоги. Program.cs напоминает ниже: < /p>
private static IEnumerable BuildInternalWatcherClass()
{
List list = new () {
Directory : "{stringLiteral}"
};
}
public static async Task Main()
{
IHost host = Host.CreateDefaultBuilder().ConfigureServices(services =>
{
services.AddSingleton();
(more services here)
foreach (var data in BuildInternalWatcherClass())
{
services.AddSingleton(x => ActivatorUtilities.CreateInstance(x, data));
}
).Build()
await host.RunAsync()
< /code>
Мне нужно удалить строки каталогов из файла программы. Функции main () должны быть статичными в C#, и все, что называется функцией, также должно быть статичным. Однако я не могу получить доступ к иконфигурации в статических функциях. < /P>
public static async Task Main()
{
IHost host = Host.CreateDefaultBuilder()
.ConfigureAppConfiguration((hostingContext, configuration) =>
{
configuration.SetBasePath(Directory.GetCurrentDirectory());
configuration.AddJsonFile("appsettings.json", optional: true);
configuration.AddJsonFile($"appsettings.Ignore.json", optional: true);
})
.ConfigureServices(services =>
{
services.AddSingleton();
(more services here)
foreach (var data in BuildInternalWatcherClass())
{
services.AddSingleton(x => ActivatorUtilities.CreateInstance(x, data));
}
).Build()
await host.RunAsync()
< /code>
Я хотел бы переместить BuildInternalWatcherClass () или изменить его так, чтобы он мог получить доступ к элементам в конфигурации, где я храню пути каталогов. В идеале я бы оставил псевдонимы в программе.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... to-service