来自脚本背景,我开始使用 c# 和 .net。我创建了一个类,该类创建一个文本文件通知一个过程已完成。我在控制台应用程序中实例化这个类并在最后调用写入过程。我要做的是在发生错误或警告时跟踪所有其他类,并在通知中反映该事件。
我已经使用公共静态布尔值实现了这一点,因此无论正在运行什么类,当发生捕获时,我都可以将布尔值更新为 true。虽然我觉得这是错误的,但我目前还没有足够的了解来找到我应该做的事情。
任何人都可以帮忙吗?代码示例:
namespace Logging
{
public class Notice
{
public static bool HasWarning { get; set; }
public static bool HasError { get; set; }
public string ProcessName {get; set;}
public enum Status
{
[Description("Complete Success")]
Complete_Success,
[Description("Complete with Warnings")]
Complete_With_Warnings,
[Description("Error Incomplete")]
Error_Incomplete
}
public void EndProcess(Status status)
{
StringBuilder sb = new StringBuilder();
sb.Append(string.Format("{0} is Complete!", ProcessName));
sb.Append(Environment.NewLine);
sb.Append(Environment.NewLine);
sb.Append(string.Format("Completion Status: {0}", ToStringEnums(status)));
sb.Append(Environment.NewLine);
sb.Append(string.Format("Completion Time: {0}", DateTime.Now.ToString("MM/dd/yy H:mm:ss")));
File.WriteAllText(string.Format(@"{0}\EndProcess.txt", Directory.GetCurrentDirectory()), sb.ToString());
}
这就是我所说的:
private static void WriteNotice()
{
Notice newNotice = new Notice();
newNotice.ProcessName = "NCOA";
if (Notice.HasError == true)
newNotice.EndProcess(Notice.Status.Error_Incomplete);
else if (Notice.HasWarning == true)
newNotice.EndProcess(Notice.Status.Complete_With_Warnings);
else
newNotice.EndProcess(Notice.Status.Complete_Success);
}