次のコードでエラーが発生しました。 .Net Core 2.0コンソールアプリケーションのロギングと構成管理をセットアップする正しい方法は何ですか?.Net Core 2.0コンソールアプリケーションのロギングと設定?
エラーCS1061が「LoggerFactory」タイプの最初の引数を受け入れる「AddConsole」と拡張子なしのメソッド「AddConsole」の定義が含まれていませんが「LoggerFactory」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足しています?)
エラーCS1503引数2:それはあなたが依存関係のカップルを欠落している可能性があります見えます
class Program
{
static void Main(string[] args)
{
var services = new ServiceCollection();
ConfigureServices(services);
var serviceProvider = services.BuildServiceProvider();
var app = serviceProvider.GetService<Application>();
Task.Run(() => app.Run()).Wait();
}
private static void ConfigureServices(IServiceCollection services)
{
ILoggerFactory loggerFactory = new LoggerFactory()
.AddConsole() // Error!
.AddDebug();
services.AddSingleton(loggerFactory); // Add first my already configured instance
services.AddLogging(); // Allow ILogger<T>
IConfigurationRoot configuration = GetConfiguration();
services.AddSingleton<IConfigurationRoot>(configuration);
// Support typed Options
services.AddOptions();
services.Configure<MyOptions>(configuration.GetSection("MyOptions")); // Error!
services.AddTransient<Application>();
}
private static IConfigurationRoot GetConfiguration()
{
return new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddXmlFile("App.config", optional: true).Build();
}
public class MyOptions
{
public string Name { get; set; }
}
public class Application
{
ILogger _logger;
MyOptions _settings;
public Application(ILogger<Application> logger, IOptions<MyOptions> settings)
{
_logger = logger;
_settings = settings.Value;
}
public async Task Run()
{
try
{
_logger.LogInformation($"This is a console application for {_settings.Name}");
}
catch (Exception ex)
{
_logger.LogError(ex.ToString());
}
}
}
}
私はかなり追加いくつかの参照とエラーがなくなっています。今度は、 'var app = serviceProvider.GetService()'を実行するとnull値が返ってきます。私は質問を更新しました。 –
ca9163d9
私は新しい質問を投稿しました。https://stackoverflow.com/questions/45928025/net-core-2-0-console-program-got-null-value-when-running-serviceprovider-getse – ca9163d9