对于'MyClass的'的类型初始值引发了异常 [英] The type initializer for 'MyClass' threw an exception

查看:96
本文介绍了对于'MyClass的'的类型初始值引发了异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的Windows服务代码。当我调试的代码中,我得到的错误/异常:




有关'CSMessageUtility.CSDetails'的类型初始值引发了异常。




 使用系统; 
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Data这;使用System.Diagnostics程序
;
使用System.Linq的;
使用System.ServiceProcess;
使用System.Text;
:使用System.IO;
使用的System.Threading;使用System.Windows
;使用System.Windows.Forms的
;
使用CSMessageUtility;

命名空间CS_Data_Trasmmiting_Service
{
公共部分类svcCSWinServ:ServiceBase
{
//私人字符串sLogFormat;
//私人字符串sErrorTime;
私人螺纹new_thread;
记录仪logObject =新记录仪();
私人布尔isenable = TRUE;

公共svcCSWinServ()
{
的InitializeComponent();
logObject.append(初始化服务+ DateTime.Now.ToString(),70);
CheckForAlarms();
}

保护覆盖无效的OnStart(字串[] args)
{

{
new_thread =新主题(新的ThreadStart( CheckForAlarms));
new_thread.Start();
}

{
}

logObject.append(成功启动服务+ DateTime.Now.ToString(),70);
}

保护覆盖无效调用OnStop()
{

{
isenable = FALSE;
new_thread.Abort();
}

{

}
logObject.append(服务已停止成功+ DateTime.Now.ToString(),70);
}


无效CheckForAlarms()
{

{
,而(真)
{
//if((DateTime.Now.ToString(\"HH:mm)==18:00))
// {

logObject.append(开始发送数据+ DateTime.Now.ToString(),70);

{
// SendAllInfo();
字符串str = CSMessageUtility.CSDetails.createDHSMessageFormat();
Thread.sleep代码(2000);
串STR1 = CSMessageUtility.CSDetails.createEALMessageFormat();
Thread.sleep代码(2000);
字符串STR2 = CSMessageUtility.CSDetails.createProductStatusMessageForamt();
Thread.sleep代码(2000);
串STR3 = CSMessageUtility.CSDetails.createEODMessageFormat();
Thread.sleep代码(2000);
串STR4 = CSDetails.createProductReceiptEntryatBOSMessageFormat();
Thread.sleep代码(2000);
STR5串= CSMessageUtility.CSDetails.createProductSaleMessageFormat();
Thread.sleep代码(2000);
串str6 = CSMessageUtility.CSDetails.createTotalizerExceptionMessageFormat();
Thread.sleep代码(2000);
//CSMessageUtility.CSDetails.createDailyCOtransferMessageFormat();
//Thread.Sleep(2000);

}
赶上(例外EE)
{
logObject.append(ee.Message,70);
}
logObject.append(完成数据发送+ DateTime.Now.ToString(),70);
Thread.sleep代码(3000);
//}
//Thread.Sleep(20000);
}
}
赶上(异常前)
{
logObject.append(线程异常:+ ex.Message ++ DateTime.Now.ToString (),70);


{
new_thread.Abort();
}
赶上(例外EX1)
{
logObject.append(线程异常:+ ex1.Message ++ DateTime.Now.ToString(),70) ;
}

如果(isenable ==真)
{
new_thread =新主题(新的ThreadStart(CheckForAlarms));
new_thread.Start();
}
}
}
}
}


解决方案

检查 TypeInitializationException 的InnerException 财产;它可能包含有关基本问题的信息,以及它到底哪里发生


The following is my Windows service code. When I am debugging the code, I am getting the error/ exception:

The type initializer for 'CSMessageUtility.CSDetails' threw an exception.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;
using System.Threading;
using System.Windows;
using System.Windows.Forms;
using CSMessageUtility;

namespace CS_Data_Trasmmiting_Service
{
    public partial class svcCSWinServ : ServiceBase
    {
        //private string sLogFormat;
        //private string sErrorTime;
        private Thread new_thread;
        Logger logObject = new Logger();
        private bool isenable = true;

        public svcCSWinServ()
        {
            InitializeComponent();
            logObject.append("Initialize Service " + DateTime.Now.ToString(), 70);
            CheckForAlarms();
        }

        protected override void OnStart(string[] args)
        {
            try
            {
                new_thread = new Thread(new ThreadStart(CheckForAlarms));
                new_thread.Start();
            }
            catch
            {
            }

            logObject.append("Service Started successfully " + DateTime.Now.ToString(), 70);
        }

        protected override void OnStop()
        {
            try
            {
                isenable = false;
                new_thread.Abort();
            }
            catch
            {

            }
            logObject.append("Service Stopped successfully " + DateTime.Now.ToString(), 70);
        }


        void CheckForAlarms()
        {
            try
            {
                while (true)
                {
                    //if((DateTime.Now.ToString("HH:mm") == "18:00"))
                    //{

                        logObject.append("Start Sending Data " +DateTime.Now.ToString(), 70);
                        try
                        {
                            //SendAllInfo();
                            string str = CSMessageUtility.CSDetails.createDHSMessageFormat();
                            Thread.Sleep(2000);
                            string str1 = CSMessageUtility.CSDetails.createEALMessageFormat();
                            Thread.Sleep(2000);
                            string str2 = CSMessageUtility.CSDetails.createProductStatusMessageForamt();
                            Thread.Sleep(2000);
                            string str3 = CSMessageUtility.CSDetails.createEODMessageFormat();
                            Thread.Sleep(2000);
                            string str4 = CSDetails.createProductReceiptEntryatBOSMessageFormat();
                            Thread.Sleep(2000);
                            string str5 = CSMessageUtility.CSDetails.createProductSaleMessageFormat();
                            Thread.Sleep(2000);
                            string str6 = CSMessageUtility.CSDetails.createTotalizerExceptionMessageFormat();
                            Thread.Sleep(2000);
                            //CSMessageUtility.CSDetails.createDailyCOtransferMessageFormat();
                            //Thread.Sleep(2000);

                        }
                        catch (Exception ee)
                        {
                            logObject.append(ee.Message, 70);
                        }
                        logObject.append("Finished Sending Data " +DateTime.Now.ToString(), 70);
                        Thread.Sleep(3000);
                    //}
                    //Thread.Sleep(20000);
                }
            }
            catch (Exception ex)
            {
                logObject.append("Thread Exception: "+ ex.Message + " "+ DateTime.Now.ToString(), 70);

                try
                {
                    new_thread.Abort();
                }
                catch (Exception ex1)
                {
                    logObject.append("Thread Exception: " +ex1.Message + " " + DateTime.Now.ToString(), 70);
                }

                if (isenable == true)
                {
                    new_thread = new Thread(new ThreadStart(CheckForAlarms));
                    new_thread.Start();
                }
            }
        }
    }
}

解决方案

Check the InnerException property of the TypeInitializationException; it is likely to contain information about the underlying problem, and exactly where it occurred.

这篇关于对于'MyClass的'的类型初始值引发了异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆