国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

[C#]對于INI操作代碼

2019-11-14 16:37:52
字體:
供稿:網(wǎng)友
using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Reflection;using System.Runtime.InteropServices;using System.Text;namespace CSharpUtilHelpV2{    /// <summary>    /// 基于.NET 2.0的INI工具類    /// 參考:    /// http://www.survivalescaperooms.com/leelike/archive/2011/01/27/1946061.html    /// http://www.survivalescaperooms.com/zzyyll2/archive/2007/11/06/950584.html        /// </summary>    public class INIToolV2    {        static string FilePath = null;        /// <summary>        /// 當(dāng)讀取不到值得時候缺省值        /// </summary>        static string ReadDefaultValue = string.Empty;        /// <summary>        /// 構(gòu)造函數(shù)        /// </summary>        /// <param name="filePath">INI路徑eg:@"C:/test.ini"</param>        public INIToolV2(string filePath)        {            FilePath = filePath;        }        /// <summary>        /// 聲明INI文件的寫操作函數(shù)        /// </summary>        /// <param name="section">段落名稱</param>        /// <param name="key">關(guān)鍵字</param>        /// <param name="val">關(guān)鍵字對應(yīng)的值</param>        /// <param name="filePath">路徑</param>        /// <returns></returns>        [DllImport("kernel32")]        PRivate static extern long WritePrivateProfileString(string section, string key, string val, string filePath);        /// <summary>        /// 聲明INI文件的讀操作函數(shù)        /// </summary>        /// <param name="section">段落名稱</param>        /// <param name="key">關(guān)鍵字</param>        /// <param name="def">無法讀取時候時候的缺省數(shù)值</param>        /// <param name="retVal">讀取數(shù)值</param>        /// <param name="size">數(shù)值的大小></param>        /// <param name="filePath">路徑</param>        /// <returns></returns>        [DllImport("kernel32")]        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);        /// <summary>        /// 寫入INI        /// eg:_iniHelper.WriteValue("測試", "Name", "YanZhiwei");        /// </summary>        /// <param name="Section">段落名稱</param>        /// <param name="Key">關(guān)鍵字</param>        /// <param name="Value">關(guān)鍵字對應(yīng)的值</param>        public void WriteValue(string Section, string Key, string Value)        {            WritePrivateProfileString(Section, Key, Value, FilePath);        }        /// <summary>        /// 讀取INI        /// </summary>        /// <param name="Section">段落名稱</param>        /// <param name="Key">關(guān)鍵字</param>        /// <returns>讀取值</returns>        public string ReadValue(string Section, string Key)        {            StringBuilder _valueBuilder = new StringBuilder(500);            GetPrivateProfileString(Section, Key, ReadDefaultValue, _valueBuilder, 500, FilePath);            return _valueBuilder.ToString();        }        /// <summary>        /// 讀取INI        /// </summary>        /// <param name="Section">段落名稱</param>        /// <param name="Key">關(guān)鍵字</param>        /// <param name="defaultValue">當(dāng)根據(jù)KEY讀取不到值得時候缺省值</param>        /// <returns></returns>        public string ReadValue(string Section, string Key, string defaultValue)        {            StringBuilder _valueBuilder = new StringBuilder(500);            GetPrivateProfileString(Section, Key, defaultValue, _valueBuilder, 500, FilePath);            return _valueBuilder.ToString();        }        /// <summary>        /// 檢查INI文件路徑是否存在        /// </summary>        /// <returns></returns>        public bool Exist()        {            if (!string.IsNullOrEmpty(FilePath))            {                return File.Exists(FilePath);            }            return false;        }        /// <summary>        /// 將對象保存在ini        /// </summary>        /// <typeparam name="T">泛型</typeparam>        /// <param name="Section">段落名稱</param>        /// <param name="t">類型</param>        public void WriteValue<T>(string Section, T t) where T : class        {            IDictionary<string, string> _property = ReflectionToolV2.GetDisplayName<T>();            foreach (KeyValuePair<string, string> entry in _property)            {                object _value = typeof(T).InvokeMember(entry.Key, BindingFlags.GetProperty, null, t, null);                Trace.WriteLine(_value);                if (_value != null)                    WriteValue(Section, entry.Value, _value.ToString());            }        }    }}

測試代碼

image

image

代碼效果:

image


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山西省| 桃江县| 长寿区| 巴东县| 乌拉特中旗| 额尔古纳市| 龙泉市| 吕梁市| 那坡县| 麻江县| 红桥区| 随州市| 辉县市| 江永县| 昂仁县| 眉山市| 团风县| 突泉县| 榕江县| 高淳县| 天津市| 慈利县| 柯坪县| 鸡西市| 阿图什市| 阿克| 德阳市| 遂昌县| 绍兴县| 宁波市| 百色市| 禹城市| 施甸县| 锡林郭勒盟| 华宁县| 南乐县| 普定县| 屯门区| 凤山市| 聊城市| 黑龙江省|