【C#Windows 服务】 《二》INI配置文件

一、工具:

VS2015+NET Framework4.5。

二、操作:

1、创建INIHelp帮助类

2、丰富帮助类操作

3、windows实例调用

三、代码:

1、INI帮助类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
 
namespace ClassLibrary1
{
    public class INIHelp
    {
 
 
        public static string iniFileName = AppDomain.CurrentDomain.BaseDirectory + System.IO.Path.DirectorySeparatorChar + "config.ini";
 
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
 
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
 
        public static string SaveConfig()
        {
            try
            {
                WriteIni("sqlconfig", "testsql", "select *  from Dog");
 
            }
            catch (Exception ex)
            {
                LogHelp.WriteLog(ex.ToString());
            }
            return "0";
        }
 
        public static void WriteIni(string Section, string Key, string strValue)
        {
            WritePrivateProfileString(Section, Key, strValue, iniFileName);
        }
 
        public static string ReadIni(string Section, string Key, string Default)
        {
            StringBuilder temp = new StringBuilder(1024);
            int rec = GetPrivateProfileString(Section, Key, Default, temp, 1024, iniFileName);
            return temp.ToString();
        }
 
    }
}

  

2、windows服务中调用代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using ClassLibrary1;
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.Threading;
using System.Threading.Tasks;
 
namespace WindowsServiceTest
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }
 
        protected override void OnStart(string[] args)
        {
 
            Thread thread = new Thread(delegate ()
            {
                try
                {
                    // for (int i = 0; i < 1000; i++)
                    //{
                    LogHelp.WriteLog("***********************服务启动*****************");
                    INIHelp.WriteIni("sqlconfig", "testsql", "select *  from Dog");
                    string str = INIHelp.ReadIni("sqlconfig", "testsql", "");
                    LogHelp.WriteLog(str);
                    LogHelp.WriteLog("***********************服务启动结束*****************");
                    // }
                }
                catch (Exception ex)
                {
 
                    LogHelp.WriteLog("服务启动失败" + ex); ;
                }
            }
                );
            thread.Name = "线程测试1";
            thread.IsBackground = true;
            thread.Start();
 
        }
 
        protected override void OnStop()
        {
        }
    }
}

  

四、总结:

来源:http://www.cnblogs.com/eadily-dream/p/6054304.html

原文地址:https://www.cnblogs.com/lidj/p/7290665.html