配置Serilog读取appsettings.json时抛出类型未找到异常求助
解决Serilog配置中“Type Sample.CustomPolicy, Sample was not found”错误
这个错误的核心是Serilog加载配置时找不到你指定的Sample.CustomPolicy类型或对应程序集,按以下步骤排查:
定位配置中的引用
打开appsettings.json,找到包含Sample.CustomPolicy, Sample的节点,通常出现在Serilog.Destructure.With或Serilog.Enrich.With这类配置项里,示例:"Serilog": { "Destructure": { "With": [ "Sample.CustomPolicy, Sample" ] } }确认类型存在性
- 检查项目中是否存在
CustomPolicy类,且命名空间为Sample; - 确保该类是
public访问级别,且正确实现Serilog要求的接口:- 若为解构策略,需实现
IDestructuringPolicy; - 若为日志增强器,需实现
ILogEventEnricher。
- 若为解构策略,需实现
- 检查项目中是否存在
核对程序集名称
配置中逗号后的Sample是程序集名称(不是命名空间)。右键项目→属性→应用程序,查看程序集名称字段,将配置里的Sample替换为实际程序集名称。比如项目叫MyConsoleApp,配置应改为Sample.CustomPolicy, MyConsoleApp。检查拼写与大小写
C#大小写敏感,确认配置中的类型名、命名空间、程序集名称拼写完全一致,无大小写错误。验证配置加载逻辑
确保控制台应用正确加载appsettings.json,示例代码:var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(config) .CreateLogger();
内容的提问来源于stack exchange,提问作者Siddharth Kumar
相关产品推荐
相关产品推荐

