public static void WriteIniFile(String file, object o) { if (!File.Exists(file)) { throw new IOException("文件:" + file + "不存在!"); } FileInfo fileInfo = new FileInfo(file); var oProp = o.GetType().GetProperties(); var map = new Dictionary <string, object>(); var defGroup = o.GetType().Name; foreach (var para in oProp) { IniConfigMaping paraAtt = (IniConfigMaping)Attribute.GetCustomAttribute(para, typeof(IniConfigMaping)); var group = defGroup; var name = para.Name; if (paraAtt == null) { continue; } if (!string.IsNullOrWhiteSpace(paraAtt.Name)) { name = paraAtt.Name; } if (!string.IsNullOrWhiteSpace(paraAtt.Group)) { group = paraAtt.Group; } WritePrivateProfileString(group, name, T.ToString(para.GetValue(o, null)), fileInfo.FullName); } }
public static O ReadIniFile <O>(String file) where O : new() { if (!File.Exists(file)) { throw new IOException("文件:" + file + "不存在!"); } FileInfo fileInfo = new FileInfo(file); O o = new O(); var oProp = typeof(O).GetProperties(); var map = new Dictionary <string, object>(); var defGroup = typeof(O).Name; foreach (var para in oProp) { IniConfigMaping paraAtt = (IniConfigMaping)Attribute.GetCustomAttribute(para, typeof(IniConfigMaping)); var group = defGroup; var name = para.Name; if (paraAtt == null) { continue; } if (!string.IsNullOrWhiteSpace(paraAtt.Name)) { name = paraAtt.Name; } if (!string.IsNullOrWhiteSpace(paraAtt.Group)) { group = paraAtt.Group; } Byte[] Buffer = new Byte[1024 * 2]; int bufLen = GetPrivateProfileString(group, name, T.ToString(para.GetValue(o, null)), Buffer, Buffer.GetUpperBound(0), fileInfo.FullName); string s = Encoding.GetEncoding(0).GetString(Buffer, 0, bufLen); map.Add(para.Name, s); } return(TypeUtils.DicToObjct <O>(map)); }