c# - Test.Program 的类型初始化程序引发异常
问题描述
在一个 .net5.0 项目中,我试图从 txt 文件中读取所有邮件,它在半小时前工作,但是当我为了更好地理解而更改了一些名称时,它突然停止工作。我从 app.config 文件中读取了 txt 文件位置,这是配置:[![在此处输入图像描述][1]][1]
我阅读的关键是 LokacijaExportanihMailAdresa。这是 app.config 中的关键;
<add key="LokacijaExportanihMailAdresa" value="txt_docs\Mailovi.txt"
这是我试图读取 txt 文件的代码:
class Program
{
public static int i = 0;
public static Timer aTimer = new Timer(Int32.Parse(ConfigurationManager.AppSettings.Get("VrijemeUMiliSekundama")));
public static string lokacijaMailova = ConfigurationManager.AppSettings.Get("LokacijaExportanihMailAdresa");
public static string posiljatelj = ConfigurationManager.AppSettings.Get("Posiljatelj");
public static string subjekt = ConfigurationManager.AppSettings.Get("Predmet");
public static string putanjaDoPoruke = ConfigurationManager.AppSettings.Get("Poruka");
public static int imaPrivitak = Int32.Parse(ConfigurationManager.AppSettings.Get("ImaAttachment"));
public static string putanjaDoPrivitka = ConfigurationManager.AppSettings.Get("Privitak");
public static string smtpServer = ConfigurationManager.AppSettings.Get("SmtpServer");
static void Main(string[] args)
{
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Aplikacija je pokrenuta");
var mailovi = File.ReadAllLines(lokacijaMailova);
aTimer.Elapsed += (sender, e) => OnTimedEvent(sender, e, logger, mailovi, i++);
aTimer.Start();
Console.ReadKey();
}
}
这是错误:
2021-11-09 13:23:01.6441|Error|MailServis.Program|System.TypeInitializationException: The type initializer for 'MailServis.Program' threw an exception.
---> System.ArgumentNullException: Value cannot be null. (Parameter 's')
at System.Int32.Parse(String s)
at MailServis.Program..cctor() in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 21
--- End of inner exception stack trace ---
at MailServis.Program.Main(String[] args) in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 32 |
但是在我将路径直接放在 File.ReadAllLines 中之后,它会读取文件,但接下来发生的事情当我的意思是相同时,Timer 会抛出相同的异常,它是完全相同的。先感谢您。
解决方案
你打电话ConfigurationManager.AppSettings.Get("ImaAttachment")
,但你有ImaPrivitak
在appSettings。
推荐阅读
- android - 如何使用重复项编辑列表项
- django - Heroku 上的 Django CSRF_COOKIE_DOMAIN
- python - 如何使用 python 将 csv 文件上传和下载到谷歌驱动器?
- django - 在不更改名称的情况下缩小所有静态文件 Django-Pipeline
- autohotkey - 选择复选框选项后重新加载 GUI
- python - 如何使用 python 停止正在运行的文件?(Linux)
- angular - 使用 Angular 在 Laravel 上存储图像
- c++-cx - 如何从 SwapChainPanel IntPtr 使用 ISwapChainPanelNative 接口
- angular - 如何在 Angular 中的提供程序配置期间从 useFactory 函数进行 HTTP 调用?
- c++ - CLION 中的 C++ 编译标志?