C# WebUtils
标签:names mem pen ldo decode lda reflect new ini
using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography;
using System.Reflection;
using VWFC.IT.CCG.Common;
using System.Xml.Serialization;
using System.Xml;
namespace BLL.Common
{
///
/// web tools
///
public sealed class WebUtils
{
///
/// Get SHA512 Hash From String
///
///
///
static public string GetHash512String(string originalData)
{
string result = string.Empty;
byte[] bytValue = Encoding.UTF8.GetBytes(originalData);
SHA512 sha512 = new SHA512CryptoServiceProvider();
byte[] retVal = sha512.ComputeHash(bytValue);
StringBuilder sb = new StringBuilder();
for (int i = 0; i )
{
sb.Append(retVal[i].ToString("x2"));
}
result = sb.ToString();
return result;
}
///
/// Dictionary Parse To String
///
/// Dictionary
/// String
static public string ParseToString(IDictionarystring, string> parameters)
{
IDictionarystring, string> sortedParams = new SortedDictionarystring, string>(parameters);
IEnumeratorstring, string>> dem = sortedParams.GetEnumerator();
StringBuilder query = new StringBuilder("");
while (dem.MoveNext())
{
string key = dem.Current.Key;
string value = dem.Current.Value;
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
{
query.Append(key).Append("=").Append(value).Append("&");
}
}
string content = query.ToString().Substring(0, query.Length - 1);
return content;
}
///
/// String Parse To Dictionary
///
/// String
/// Dictionary
static public Dictionarystring, string> ParseToDictionary(string parameter)
{
String[] dataArry = parameter.Split(‘&‘);
Dictionarystring, string> dataDic = new Dictionarystring, string>();
for (int i = 0; i 1; i++)
{
String dataParm = dataArry[i];
int dIndex = dataParm.IndexOf("=");
if (dIndex != -1)
{
String key = dataParm.Substring(0, dIndex);
String value = dataParm.Substring(dIndex + 1, dataParm.Length - dIndex - 1);
dataDic.Add(key, value);
}
}
return dataDic;
}
static public string Base64Encode(string data)
{
string result = data;
byte[] encData_byte = Encoding.UTF8.GetBytes(data);
result = Convert.ToBase64String(encData_byte);
return result;
}
static public string Base64Decode(string data)
{
string result = data;
string decode = string.Empty;
UTF8Encoding encoder = new UTF8Encoding();
Decoder utf8Decode = encoder.GetDecoder();
byte[] todecode_byte = Convert.FromBase64String(data);
int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
char[] decoded_char = new char[charCount];
utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
result = new String(decoded_char);
return result;
}
static public T DictionaryToObject(Dictionarystring, string> dic) where T : new()
{
Type myType = typeof(T);
T entity = new T();
var fields = myType.GetProperties();
string val = string.Empty;
object obj = null;
int i = 0;
foreach (var field in fields)
{
if (!dic.ContainsKey(field.Name))
continue;
val = dic[field.Name];
object defaultVal;
if (field.PropertyType.Name.Equals("String"))
defaultVal = string.Empty;
else if (field.PropertyType.Name.Equals("Boolean"))
{
defaultVal = false;
val = (val.Equals("1") || val.Equals("on")).ToString();
}
else if (field.PropertyType.Name.Equals("Decimal"))
defaultVal = 0M;
else
defaultVal = 0;
if (!field.PropertyType.IsGenericType)
{
obj = string.IsNullOrEmpty(val) ? defaultVal : Convert.ChangeType(val, field.PropertyType);
}
else
{
Type genericTypeDefinition = field.PropertyType.GetGenericTypeDefinition();
if (genericTypeDefinition == typeof(Nullable))
obj = string.IsNullOrEmpty(val) ? defaultVal : Convert.ChangeType(val, Nullable.GetUnderlyingType(field.PropertyType));
}
field.SetValue(entity, obj, null);
i++;
}
return entity;
}
static public string SerializeToXml(T obj)
{
string xmlString = string.Empty;
//XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
//using (MemoryStream ms = new MemoryStream())
//{
// xmlSerializer.Serialize(ms, obj);
// xmlString = Encoding.UTF8.GetString(ms.ToArray());
//}
Encoding encoding = Encoding.UTF8;
using (MemoryStream memoryStream = new MemoryStream())
{
XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("", "");
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, new UTF8Encoding(false));
xmlTextWriter.Formatting = Formatting.None;
xmlSerializer.Serialize(xmlTextWriter, obj, namespaces);
xmlTextWriter.Flush();
xmlTextWriter.Close();
xmlString = encoding.GetString(memoryStream.ToArray());
}
return xmlString;
}
static public T DeserializeXml(string xmlString)
{
T t = default(T);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
using (Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))
{
using (XmlReader xmlReader = XmlReader.Create(xmlStream))
{
Object obj = xmlSerializer.Deserialize(xmlReader);
t = (T)obj;
}
}
return t;
}
static public string VerifyXml(string xml)
{
string result = string.Empty;
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
}
catch (XmlException ex) { result = ex.Message; }
return result;
}
static public string GetXmlNodeText(string xml, string nodeName)
{
string result = string.Empty;
try
{
var doc = new XmlDocument();
doc.LoadXml(xml);
XmlNode entityName = doc.SelectSingleNode(nodeName);
if (entityName != null)
{
result = entityName.InnerText.Trim();
}
}
catch { }
return result;
}
}
}
C# WebUtils
标签:names mem pen ldo decode lda reflect new ini
原文地址:https://www.cnblogs.com/hofmann/p/13651941.html
评论