利用HttpWebRequest模拟表单提交
1 using System;
2 using System.Collections.Specialized;
3 using System.IO;
4 using System.Net;
5 using System.Text;
6
7 namespace Allyn.Common
8 {
9 public class HttpHelper
10 {
11 /// <summary>
12 /// 获取指定路径数据
13 /// </summary>
14 /// <param name="requestUri">提交路径</param>
15 /// <param name="cookie">Cookie容器对象</param>
16 /// <returns>字符串结果</returns>
17 public static string GetForm(string requestUri, CookieContainer cookie)
18 {
19 HttpWebRequest request = WebRequest.CreateHttp(requestUri);
20 request.Method = "get";
21 request.CookieContainer = cookie;
22 request.ContentLength = 0;
23
24 WebResponse response = request.GetResponse();
25 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
26 return reader.ReadToEnd();
27 }
28
29 /// <summary>
30 /// 默认表单提交
31 /// </summary>
32 /// <param name="requestUri">提交路径</param>
33 /// <param name="postData">提交数据</param>
34 /// <param name="cookie">Cookie容器对象</param>
35 /// <returns>字符串结果</returns>
36 public static string PostForm(string requestUri, NameValueCollection postData, CookieContainer cookie)
37 {
38 HttpWebRequest request = WebRequest.CreateHttp(requestUri);
39 request.Method = "post";
40 request.ContentType = "application/x-www-form-urlencoded";
41 request.CookieContainer = cookie;
42
43 StringBuilder stringBuilder = new StringBuilder();
44 foreach (string key in postData.Keys)
45 {
46 stringBuilder.AppendFormat("&{0}={1}", key, postData.Get(key));
47 }
48 byte[] buffer = Encoding.UTF8.GetBytes(stringBuilder.ToString().Trim('&'));
49 Stream requestStream = request.GetRequestStream();
50 requestStream.Write(buffer, 0, buffer.Length);
51 requestStream.Close();
52
53 WebResponse response = request.GetResponse();
54 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
55 return reader.ReadToEnd();
56 }
57
58 /// <summary>
59 /// 多部件表单提交
60 /// </summary>
61 /// <param name="requestUri">提交路径</param>
62 /// <param name="postData">提交数据.注:如果是文件路径,代表是文件.</param>
63 /// <param name="cookie">Cookie容器对象</param>
64 /// <returns>字符串结果</returns>
65 public static string PostFormMultipart(string requestUri, NameValueCollection postData, CookieContainer cookie)
66 {
67 string boundary = string.Format("-----{0}", DateTime.Now.Ticks.ToString("x"));
68 HttpWebRequest webrequest = WebRequest.CreateHttp(requestUri);
69 webrequest.CookieContainer = cookie;
70 webrequest.Timeout = 120000;
71 webrequest.Method = "post";
72 webrequest.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
73
74 Stream requestStream = webrequest.GetRequestStream();
75 foreach (string key in postData.Keys)
76 {
77 StringBuilder strBuilder = new StringBuilder();
78 strBuilder.AppendFormat("--{0}", boundary);
79 strBuilder.AppendFormat("\r\nContent-Disposition: form-data; name=\"{0}\"", key);
80 if (File.Exists(postData.Get(key)))
81 {
82 strBuilder.AppendFormat(";filename=\"{0}\"\r\nContent-Type: multipart/form-data\r\n\r\n", Path.GetFileName(postData.Get(key)));
83 byte[] buffer = Encoding.UTF8.GetBytes(strBuilder.ToString());
84 requestStream.Write(buffer, 0, buffer.Length);
85 //获取图片流
86 FileStream fileStream = new FileStream(postData.Get(key), FileMode.Open, FileAccess.Read);
87 BinaryReader binaryReader = new BinaryReader(fileStream);
88 byte[] fileBuffer = binaryReader.ReadBytes((int)fileStream.Length);
89 binaryReader.Close();
90 fileStream.Close();
91 requestStream.Write(fileBuffer, 0, fileBuffer.Length);
92 }
93 else
94 {
95 strBuilder.AppendFormat("\r\n\r\n{0}\r\n", postData.Get(key));
96 byte[] buff = Encoding.UTF8.GetBytes(strBuilder.ToString());
97 requestStream.Write(buff, 0, buff.Length);
98 }
99 }
100
101 byte[] boundaryBuffer = Encoding.UTF8.GetBytes(string.Format("\r\n--{0}\r\n", boundary));
102 requestStream.Write(boundaryBuffer, 0, boundaryBuffer.Length);
103 requestStream.Close();
104
105 WebResponse response = webrequest.GetResponse();
106 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
107 return reader.ReadToEnd();
108 }
109 }
110 }
JQuery 的一个轻量级 Guid 字符串拓展插件.
1 (function ($) {
2 function guid(g) {
3 var arr = new Array(); //存放32位数值的数组
4 if (typeof (g) == "string") { //如果构造函数的参数为字符串
5 initializeByString(arr, g);
6 } else {
7 initializeByOther(arr);
8 }
9 //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。
10 this.equals = function (o) {
11 if (o && o.isGuid()) {
12 return this.toString() == o.toString();
13 }
14 else {
15 return false;
16 }
17 }
18 //Guid对象的标记
19 this.isGuid = function () {
20 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(this);
21 }
22 //返回 Guid 类的此实例值的 String 表示形式。
23 this.toString = function (format) {
24 if (typeof (format) == "string") {
25 if (format == "N" || format == "D" || format == "B" || format == "P") {
26 return toStringWithFormat(arr, format);
27 } else {
28 return toStringWithFormat(arr, "D");
29 }
30 }
31 else {
32 return toStringWithFormat(arr, "D");
33 }
34 }
35 //由字符串加载
36 function initializeByString(arr, g) {
37 g = g.replace(/\{|\(|\)|\}|-/g, "");
38 g = g.toLowerCase();
39 if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) {
40 initializeByOther(arr);
41 } else {
42 for (var i = 0; i < g.length; i++) {
43 arr.push(g[i]);
44 }
45 }
46 }
47 //由其他类型加载
48 function initializeByOther(arr) {
49 var i = 32;
50 while (i--) {
51 arr.push("0");
52 }
53 }
54 /*
55 根据所提供的格式说明符,返回此 Guid 实例值的 String 表示形式。
56 N 32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
57 D 由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
58 B 括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
59 P 括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
60 */
61 function toStringWithFormat(arr, format) {
62 switch (format) {
63 case "N":
64 return arr.toString().replace(/,/g, "");
65 case "D":
66 var str = arr.slice(0, 8) + "-" + arr.slice(8, 12) + "-" + arr.slice(12, 16) + "-" + arr.slice(16, 20) + "-" + arr.slice(20, 32);
67 str = str.replace(/,/g, "");
68 return str;
69 case "B":
70 var str = toStringWithFormat(arr, "D");
71 str = "{" + str + "}";
72 return str;
73 case "P":
74 var str = toStringWithFormat(arr, "D");
75 str = "(" + str + ")";
76 return str;
77 default:
78 return new Guid();
79 }
80 }
81 }
82 $.extend({ guidEx: guid });
83 $.extend($.guidEx, {
84 enpty: function () {
85 return new guid();
86 },
87 newGuid: function () {
88 var g = "";
89 var i = 32;
90 while (i--) {
91 g += Math.floor(Math.random() * 16.0).toString(16);
92 }
93 return new guid(g);
94 },
95 isGuid: function (g) {
96 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(g);
97 }
98 });
99 })(jQuery);
轻量级Config文件AppSettings节点编辑帮助类
1 using System.Configuration;
2 using System.Windows.Forms;
3
4 namespace Allyn.Common
5 {
6 public class XmlHeper
7 {
8 ///<summary>
9 ///返回Config文件中appSettings配置节的value项
10 ///</summary>
11 ///<param name="strKey">节点Key</param>
12 ///<returns>值</returns>
13 public static string GetAppConfig(string strKey)
14 {
15 string file = Application.ExecutablePath;
16 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
17
18 foreach (string key in config.AppSettings.Settings.AllKeys)
19 {
20 if (key == strKey)
21 {
22 return config.AppSettings.Settings[strKey].Value.ToString();
23 }
24 }
25 return string.Empty;
26 }
27
28 ///<summary>
29 ///在Config文件中appSettings配置节增加一对键值对
30 ///</summary>
31 ///<param name="newKey">节点名称</param>
32 ///<param name="newValue">信值</param>
33 public static void UpdateAppConfig(string newKey, string newValue)
34 {
35 string file = System.Windows.Forms.Application.ExecutablePath;
36 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
37
38 bool exist = false;
39
40 foreach (string key in config.AppSettings.Settings.AllKeys)
41 {
42 if (key == newKey) { exist = true; }
43 }
44
45 if (exist) { config.AppSettings.Settings.Remove(newKey); }
46
47 config.AppSettings.Settings.Add(newKey, newValue);
48 config.Save(ConfigurationSaveMode.Modified);
49
50 ConfigurationManager.RefreshSection("appSettings");
51 }
52 }
53 }
1 using System;
2 using System.Collections.Specialized;
3 using System.IO;
4 using System.Net;
5 using System.Text;
6
7 namespace Allyn.Common
8 {
9 public class HttpHelper
10 {
11 /// <summary>
12 /// 获取指定路径数据
13 /// </summary>
14 /// <param name="requestUri">提交路径</param>
15 /// <param name="cookie">Cookie容器对象</param>
16 /// <returns>字符串结果</returns>
17 public static string GetForm(string requestUri, CookieContainer cookie)
18 {
19 HttpWebRequest request = WebRequest.CreateHttp(requestUri);
20 request.Method = "get";
21 request.CookieContainer = cookie;
22 request.ContentLength = 0;
23
24 WebResponse response = request.GetResponse();
25 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
26 return reader.ReadToEnd();
27 }
28
29 /// <summary>
30 /// 默认表单提交
31 /// </summary>
32 /// <param name="requestUri">提交路径</param>
33 /// <param name="postData">提交数据</param>
34 /// <param name="cookie">Cookie容器对象</param>
35 /// <returns>字符串结果</returns>
36 public static string PostForm(string requestUri, NameValueCollection postData, CookieContainer cookie)
37 {
38 HttpWebRequest request = WebRequest.CreateHttp(requestUri);
39 request.Method = "post";
40 request.ContentType = "application/x-www-form-urlencoded";
41 request.CookieContainer = cookie;
42
43 StringBuilder stringBuilder = new StringBuilder();
44 foreach (string key in postData.Keys)
45 {
46 stringBuilder.AppendFormat("&{0}={1}", key, postData.Get(key));
47 }
48 byte[] buffer = Encoding.UTF8.GetBytes(stringBuilder.ToString().Trim('&'));
49 Stream requestStream = request.GetRequestStream();
50 requestStream.Write(buffer, 0, buffer.Length);
51 requestStream.Close();
52
53 WebResponse response = request.GetResponse();
54 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
55 return reader.ReadToEnd();
56 }
57
58 /// <summary>
59 /// 多部件表单提交
60 /// </summary>
61 /// <param name="requestUri">提交路径</param>
62 /// <param name="postData">提交数据.注:如果是文件路径,代表是文件.</param>
63 /// <param name="cookie">Cookie容器对象</param>
64 /// <returns>字符串结果</returns>
65 public static string PostFormMultipart(string requestUri, NameValueCollection postData, CookieContainer cookie)
66 {
67 string boundary = string.Format("-----{0}", DateTime.Now.Ticks.ToString("x"));
68 HttpWebRequest webrequest = WebRequest.CreateHttp(requestUri);
69 webrequest.CookieContainer = cookie;
70 webrequest.Timeout = 120000;
71 webrequest.Method = "post";
72 webrequest.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
73
74 Stream requestStream = webrequest.GetRequestStream();
75 foreach (string key in postData.Keys)
76 {
77 StringBuilder strBuilder = new StringBuilder();
78 strBuilder.AppendFormat("--{0}", boundary);
79 strBuilder.AppendFormat("\r\nContent-Disposition: form-data; name=\"{0}\"", key);
80 if (File.Exists(postData.Get(key)))
81 {
82 strBuilder.AppendFormat(";filename=\"{0}\"\r\nContent-Type: multipart/form-data\r\n\r\n", Path.GetFileName(postData.Get(key)));
83 byte[] buffer = Encoding.UTF8.GetBytes(strBuilder.ToString());
84 requestStream.Write(buffer, 0, buffer.Length);
85 //获取图片流
86 FileStream fileStream = new FileStream(postData.Get(key), FileMode.Open, FileAccess.Read);
87 BinaryReader binaryReader = new BinaryReader(fileStream);
88 byte[] fileBuffer = binaryReader.ReadBytes((int)fileStream.Length);
89 binaryReader.Close();
90 fileStream.Close();
91 requestStream.Write(fileBuffer, 0, fileBuffer.Length);
92 }
93 else
94 {
95 strBuilder.AppendFormat("\r\n\r\n{0}\r\n", postData.Get(key));
96 byte[] buff = Encoding.UTF8.GetBytes(strBuilder.ToString());
97 requestStream.Write(buff, 0, buff.Length);
98 }
99 }
100
101 byte[] boundaryBuffer = Encoding.UTF8.GetBytes(string.Format("\r\n--{0}\r\n", boundary));
102 requestStream.Write(boundaryBuffer, 0, boundaryBuffer.Length);
103 requestStream.Close();
104
105 WebResponse response = webrequest.GetResponse();
106 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
107 return reader.ReadToEnd();
108 }
109 }
110 }
JQuery 的一个轻量级 Guid 字符串拓展插件.
1 (function ($) {
2 function guid(g) {
3 var arr = new Array(); //存放32位数值的数组
4 if (typeof (g) == "string") { //如果构造函数的参数为字符串
5 initializeByString(arr, g);
6 } else {
7 initializeByOther(arr);
8 }
9 //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。
10 this.equals = function (o) {
11 if (o && o.isGuid()) {
12 return this.toString() == o.toString();
13 }
14 else {
15 return false;
16 }
17 }
18 //Guid对象的标记
19 this.isGuid = function () {
20 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(this);
21 }
22 //返回 Guid 类的此实例值的 String 表示形式。
23 this.toString = function (format) {
24 if (typeof (format) == "string") {
25 if (format == "N" || format == "D" || format == "B" || format == "P") {
26 return toStringWithFormat(arr, format);
27 } else {
28 return toStringWithFormat(arr, "D");
29 }
30 }
31 else {
32 return toStringWithFormat(arr, "D");
33 }
34 }
35 //由字符串加载
36 function initializeByString(arr, g) {
37 g = g.replace(/\{|\(|\)|\}|-/g, "");
38 g = g.toLowerCase();
39 if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) {
40 initializeByOther(arr);
41 } else {
42 for (var i = 0; i < g.length; i++) {
43 arr.push(g[i]);
44 }
45 }
46 }
47 //由其他类型加载
48 function initializeByOther(arr) {
49 var i = 32;
50 while (i--) {
51 arr.push("0");
52 }
53 }
54 /*
55 根据所提供的格式说明符,返回此 Guid 实例值的 String 表示形式。
56 N 32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
57 D 由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
58 B 括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
59 P 括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
60 */
61 function toStringWithFormat(arr, format) {
62 switch (format) {
63 case "N":
64 return arr.toString().replace(/,/g, "");
65 case "D":
66 var str = arr.slice(0, 8) + "-" + arr.slice(8, 12) + "-" + arr.slice(12, 16) + "-" + arr.slice(16, 20) + "-" + arr.slice(20, 32);
67 str = str.replace(/,/g, "");
68 return str;
69 case "B":
70 var str = toStringWithFormat(arr, "D");
71 str = "{" + str + "}";
72 return str;
73 case "P":
74 var str = toStringWithFormat(arr, "D");
75 str = "(" + str + ")";
76 return str;
77 default:
78 return new Guid();
79 }
80 }
81 }
82 $.extend({ guidEx: guid });
83 $.extend($.guidEx, {
84 enpty: function () {
85 return new guid();
86 },
87 newGuid: function () {
88 var g = "";
89 var i = 32;
90 while (i--) {
91 g += Math.floor(Math.random() * 16.0).toString(16);
92 }
93 return new guid(g);
94 },
95 isGuid: function (g) {
96 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(g);
97 }
98 });
99 })(jQuery);
轻量级Config文件AppSettings节点编辑帮助类
1 using System.Configuration;
2 using System.Windows.Forms;
3
4 namespace Allyn.Common
5 {
6 public class XmlHeper
7 {
8 ///<summary>
9 ///返回Config文件中appSettings配置节的value项
10 ///</summary>
11 ///<param name="strKey">节点Key</param>
12 ///<returns>值</returns>
13 public static string GetAppConfig(string strKey)
14 {
15 string file = Application.ExecutablePath;
16 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
17
18 foreach (string key in config.AppSettings.Settings.AllKeys)
19 {
20 if (key == strKey)
21 {
22 return config.AppSettings.Settings[strKey].Value.ToString();
23 }
24 }
25 return string.Empty;
26 }
27
28 ///<summary>
29 ///在Config文件中appSettings配置节增加一对键值对
30 ///</summary>
31 ///<param name="newKey">节点名称</param>
32 ///<param name="newValue">信值</param>
33 public static void UpdateAppConfig(string newKey, string newValue)
34 {
35 string file = System.Windows.Forms.Application.ExecutablePath;
36 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
37
38 bool exist = false;
39
40 foreach (string key in config.AppSettings.Settings.AllKeys)
41 {
42 if (key == newKey) { exist = true; }
43 }
44
45 if (exist) { config.AppSettings.Settings.Remove(newKey); }
46
47 config.AppSettings.Settings.Add(newKey, newValue);
48 config.Save(ConfigurationSaveMode.Modified);
49
50 ConfigurationManager.RefreshSection("appSettings");
51 }
52 }
53 }
1 (function ($) {
2 function guid(g) {
3 var arr = new Array(); //存放32位数值的数组
4 if (typeof (g) == "string") { //如果构造函数的参数为字符串
5 initializeByString(arr, g);
6 } else {
7 initializeByOther(arr);
8 }
9 //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。
10 this.equals = function (o) {
11 if (o && o.isGuid()) {
12 return this.toString() == o.toString();
13 }
14 else {
15 return false;
16 }
17 }
18 //Guid对象的标记
19 this.isGuid = function () {
20 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(this);
21 }
22 //返回 Guid 类的此实例值的 String 表示形式。
23 this.toString = function (format) {
24 if (typeof (format) == "string") {
25 if (format == "N" || format == "D" || format == "B" || format == "P") {
26 return toStringWithFormat(arr, format);
27 } else {
28 return toStringWithFormat(arr, "D");
29 }
30 }
31 else {
32 return toStringWithFormat(arr, "D");
33 }
34 }
35 //由字符串加载
36 function initializeByString(arr, g) {
37 g = g.replace(/\{|\(|\)|\}|-/g, "");
38 g = g.toLowerCase();
39 if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) {
40 initializeByOther(arr);
41 } else {
42 for (var i = 0; i < g.length; i++) {
43 arr.push(g[i]);
44 }
45 }
46 }
47 //由其他类型加载
48 function initializeByOther(arr) {
49 var i = 32;
50 while (i--) {
51 arr.push("0");
52 }
53 }
54 /*
55 根据所提供的格式说明符,返回此 Guid 实例值的 String 表示形式。
56 N 32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
57 D 由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
58 B 括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
59 P 括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
60 */
61 function toStringWithFormat(arr, format) {
62 switch (format) {
63 case "N":
64 return arr.toString().replace(/,/g, "");
65 case "D":
66 var str = arr.slice(0, 8) + "-" + arr.slice(8, 12) + "-" + arr.slice(12, 16) + "-" + arr.slice(16, 20) + "-" + arr.slice(20, 32);
67 str = str.replace(/,/g, "");
68 return str;
69 case "B":
70 var str = toStringWithFormat(arr, "D");
71 str = "{" + str + "}";
72 return str;
73 case "P":
74 var str = toStringWithFormat(arr, "D");
75 str = "(" + str + ")";
76 return str;
77 default:
78 return new Guid();
79 }
80 }
81 }
82 $.extend({ guidEx: guid });
83 $.extend($.guidEx, {
84 enpty: function () {
85 return new guid();
86 },
87 newGuid: function () {
88 var g = "";
89 var i = 32;
90 while (i--) {
91 g += Math.floor(Math.random() * 16.0).toString(16);
92 }
93 return new guid(g);
94 },
95 isGuid: function (g) {
96 return /^[0-9a-fA-F]{32}?$|^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}?$/.test(g);
97 }
98 });
99 })(jQuery);
轻量级Config文件AppSettings节点编辑帮助类
1 using System.Configuration;
2 using System.Windows.Forms;
3
4 namespace Allyn.Common
5 {
6 public class XmlHeper
7 {
8 ///<summary>
9 ///返回Config文件中appSettings配置节的value项
10 ///</summary>
11 ///<param name="strKey">节点Key</param>
12 ///<returns>值</returns>
13 public static string GetAppConfig(string strKey)
14 {
15 string file = Application.ExecutablePath;
16 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
17
18 foreach (string key in config.AppSettings.Settings.AllKeys)
19 {
20 if (key == strKey)
21 {
22 return config.AppSettings.Settings[strKey].Value.ToString();
23 }
24 }
25 return string.Empty;
26 }
27
28 ///<summary>
29 ///在Config文件中appSettings配置节增加一对键值对
30 ///</summary>
31 ///<param name="newKey">节点名称</param>
32 ///<param name="newValue">信值</param>
33 public static void UpdateAppConfig(string newKey, string newValue)
34 {
35 string file = System.Windows.Forms.Application.ExecutablePath;
36 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
37
38 bool exist = false;
39
40 foreach (string key in config.AppSettings.Settings.AllKeys)
41 {
42 if (key == newKey) { exist = true; }
43 }
44
45 if (exist) { config.AppSettings.Settings.Remove(newKey); }
46
47 config.AppSettings.Settings.Add(newKey, newValue);
48 config.Save(ConfigurationSaveMode.Modified);
49
50 ConfigurationManager.RefreshSection("appSettings");
51 }
52 }
53 }
1 using System.Configuration;
2 using System.Windows.Forms;
3
4 namespace Allyn.Common
5 {
6 public class XmlHeper
7 {
8 ///<summary>
9 ///返回Config文件中appSettings配置节的value项
10 ///</summary>
11 ///<param name="strKey">节点Key</param>
12 ///<returns>值</returns>
13 public static string GetAppConfig(string strKey)
14 {
15 string file = Application.ExecutablePath;
16 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
17
18 foreach (string key in config.AppSettings.Settings.AllKeys)
19 {
20 if (key == strKey)
21 {
22 return config.AppSettings.Settings[strKey].Value.ToString();
23 }
24 }
25 return string.Empty;
26 }
27
28 ///<summary>
29 ///在Config文件中appSettings配置节增加一对键值对
30 ///</summary>
31 ///<param name="newKey">节点名称</param>
32 ///<param name="newValue">信值</param>
33 public static void UpdateAppConfig(string newKey, string newValue)
34 {
35 string file = System.Windows.Forms.Application.ExecutablePath;
36 Configuration config = ConfigurationManager.OpenExeConfiguration(file);
37
38 bool exist = false;
39
40 foreach (string key in config.AppSettings.Settings.AllKeys)
41 {
42 if (key == newKey) { exist = true; }
43 }
44
45 if (exist) { config.AppSettings.Settings.Remove(newKey); }
46
47 config.AppSettings.Settings.Add(newKey, newValue);
48 config.Save(ConfigurationSaveMode.Modified);
49
50 ConfigurationManager.RefreshSection("appSettings");
51 }
52 }
53 }