76 lines
2.7 KiB
C#
76 lines
2.7 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Linq;
|
||
using System.Reflection;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace Common
|
||
{
|
||
public class IniHelper
|
||
{
|
||
[DllImport("kernel32")]
|
||
public static extern bool WritePrivateProfileString(string lpapplication, string lpkeyname, string lpstring, string lpfilename);
|
||
|
||
[DllImport("kernel32")]
|
||
public static extern int GetPrivateProfileString(string lpszSection, string lpszKey, string lpszDefault, System.Text.StringBuilder lpReturnedString, int cchReturnBuffer, string lpsFile);
|
||
|
||
public static string IniRead(string _filePath, string _section, string _key, string _default)
|
||
{
|
||
System.Text.StringBuilder _builder = new System.Text.StringBuilder(1024);
|
||
int len = GetPrivateProfileString(_section, _key, _default, _builder, 1024, _filePath);
|
||
string str = Convert.ToString(_builder).Trim();
|
||
int num = str.IndexOf(Convert.ToChar(0));
|
||
if (num >= 0) str = str.Substring(0, num - 1);
|
||
return str;
|
||
}
|
||
|
||
public static bool IniWrite(string _filePath, string _section, string _key, string _value)
|
||
{
|
||
return WritePrivateProfileString(_section, _key, _value, _filePath);
|
||
}
|
||
}
|
||
|
||
public class EnumItem<TEnum> where TEnum : struct, Enum
|
||
{
|
||
public TEnum Value { get; set; } // 枚举值(如MA)
|
||
public string DisplayName { get; set; } // 显示文本(如“电容式”)
|
||
}
|
||
|
||
public class EnumHelperr
|
||
{
|
||
public static string GetDescription(Enum value)
|
||
{
|
||
Type type = value.GetType();
|
||
MemberInfo[] memberInfo = type.GetMember(value.ToString());
|
||
if (memberInfo.Length > 0)
|
||
{
|
||
object[] attributes = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
|
||
if (attributes.Length > 0)
|
||
{
|
||
return ((DescriptionAttribute)attributes[0]).Description;
|
||
}
|
||
}
|
||
return value.ToString();
|
||
}
|
||
|
||
public static List<EnumItem<TEnum>> GetEnumDescriptionList<TEnum>() where TEnum : struct, Enum
|
||
{
|
||
var list =new List<EnumItem<TEnum>>();
|
||
foreach (TEnum enumValue in Enum.GetValues(typeof(TEnum)))
|
||
{
|
||
list.Add(new EnumItem<TEnum>
|
||
{
|
||
Value = enumValue, // 存储原始枚举值
|
||
DisplayName = GetDescription(enumValue) // 存储显示文本
|
||
});
|
||
}
|
||
return list;
|
||
}
|
||
|
||
}
|
||
|
||
}
|