menggunakan Sistem;
menggunakan System.Collections.Generik;
menggunakan System.Linq;
menggunakan Sistem.Teks;
menggunakan Sistem.Refleksi;
menggunakan Sistem.Data;
menggunakan Sistem.Data.Umum;
menggunakan System.Web.Script.Serialization;
menggunakan Sistem.IO;
menggunakan Sistem.Keamanan.Kriptografi;
menggunakan Sistem.ComponentModel;
menggunakan System.Runtime.Serialization.Formatters.Binary;
menggunakan System.xml.Serialisasi;
namespace Pub.Kelas {
Kelas statis publik ObjectExtensions {
string statis publik ToJson(obj objek ini){
kembalikan ToJson(obj, null);
}
string statis publik ToJson(obj objek ini, IEnumerable
Serializer JavascriptSerializer = JavaScriptSerializer baru();
if (jsonConverters != null) serializer.RegisterConverters(jsonConverters ?? new JavaScriptConverter[0]);
kembalikan serializer.Serialize(obj);
}
public static T ConvertTo
public static T ConvertTo
jika(nilai != nol) {
var targetType = typeof(T);
var converter = TypeDescriptor.GetConverter(nilai);
if(konverter != nol) {
if(converter.CanConvertTo(targetType)) return (T) converter.ConvertTo(value, targetType);
}
konverter = TypeDescriptor.GetConverter(targetType);
if(konverter != nol) {
coba { if(converter.CanConvertFrom(value.GetType())) return (T) converter.ConvertFrom(value); } menangkap {}
}
}
kembalikan Nilai default;
}
public static T ConvertTo
jika(abaikanPengecualian) {
mencoba {
mengembalikan nilai.ConvertTo
}
menangkap {
kembalikan Nilai default;
}
}
mengembalikan nilai.ConvertTo
}
public static int ToInt(objek ini strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
byte statis publik ToTinyInt(objek ini strValue, byte defValue) { byte def = 0; byte.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
public static short ToSmallInt(objek ini strValue, short defValue) { short def = 0; short.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
desimal statis publik ToDecimal(objek ini strValue, desimal defValue) { desimal def = 0; desimal.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
public static float ToFloat(objek ini strValue, float defValue) { float def = 0; float.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def : def; }
public static Int64 ToBigInt(objek ini strValue, Int64 defValue) { Int64 def = 0; Int64.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
desimal statis publik ToMoney(objek ini strValue, desimal defValue) { desimal def = 0; desimal.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
public static int ToInteger(objek ini strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), keluar def); kembalikan def == 0 ? nilai def: def; }
public static bool ToBool(Ekspresi objek ini, bool defValue) {
if (Ekspresi != null) {
if (string.Bandingkan(Ekspresi.ToString(), "benar", benar) == 0) mengembalikan nilai benar;
if (string.Compare(Expression.ToString(), "false", true) == 0) return false;
if (string.Compare(Expression.ToString(), "1", true) == 0) mengembalikan nilai true;
if (string.Bandingkan(Expression.ToString(), "0", true) == 0) return false;
}
kembalikan defValue;
}
public static int ToInt(objek ini strValue) { return strValue.ToInt(0); }
byte statis publik ToTinyInt(objek ini strValue) { return strValue.ToTinyInt(0); }
public static short ToSmallInt(objek ini strValue) { return strValue.ToSmallInt(0); }
desimal statis publik ToDecimal(objek ini strValue) { return strValue.ToDecimal(0); }
public static float ToFloat(objek ini strValue) { return strValue.ToFloat(0); }
public static Int64 ToBigInt(objek ini strValue) { return strValue.ToBigInt(0); }
desimal statis publik ToMoney(objek ini strValue) { return strValue.ToMoney(0); }
public static int ToInteger(objek ini strValue) { return strValue.ToInteger(0); }
public static bool ToBool(objek ini strValue) { return strValue.ToBool(false); }
objek statis publik InvokeMethod(obj objek ini, nama metode string, objek params[] parameter) {
kembalikan InvokeMethod
}
public static T InvokeMethod
return InvokeMethod
}
public static T InvokeMethod
var tipe = obj.GetType();
metode var = ketik.GetMethod(nama metode);
if(metode == null) throw new ArgumentException(string.Format("Metode '{0}' tidak ditemukan.", MethodName), MethodName);
var value = metode.Panggil(obj, parameter);
return (nilainya adalah T ? (T) nilai : default(T));
}
objek statis publik GetPropertyValue(obj objek ini, string propertyName) {
kembalikan GetPropertyValue
if(property == null) throw new ArgumentException(string.Format("Properti '{0}' tidak ditemukan.", propertyName), propertyName);
var nilai = properti.GetValue(obj, null);
return (nilainya adalah T ? (T) nilai : defaultValue);
}
public static void SetPropertyValue(obj objek ini, nama properti string, nilai objek) {
var tipe = obj.GetType();
var properti = tipe.GetProperty(propertyName);
if(property == null) throw new ArgumentException(string.Format("Properti '{0}' tidak ditemukan.", propertyName), propertyName);
properti.SetValue(obj, nilai, null);
}
public static T GetAttribute
kembalikan GetAttribute
}
public static T GetAttribute
var type = (obj sebagai Tipe ?? obj.GetType());
var atribut = type.GetCustomAttributes(typeof(T), includeInherited);
if((atribut != null) && (atribut.Panjang > 0)) {
return (atribut[0] sebagai T);
}
kembalikan nol;
}
public static IEnumerable
kembalikan GetAttributes
}
public static IEnumerable
var type = (obj sebagai Tipe ?? obj.GetType());
foreach(atribut var dalam type.GetCustomAttributes(typeof(T), includeInherited)) {
if(atribut adalah T) atribut pengembalian hasil (T);
}
}
public static bool IsType(obj objek ini, Tipe tipe) {
kembalikan obj.GetType().Equals(type);
}
public static T ToType
public static bool IsArray(obj objek ini) {
return obj.IsType(typeof(System.Array));
}
public static bool IsDBNull(obj objek ini) {
return obj.IsType(typeof(DBNull));
}
byte statis publik[] Serialisasi(nilai objek ini) {
MemoryStream ms = MemoryStream baru();
BinaryFormatter bf1 = BinaryFormatter baru();
bf1.Serialize(ms, nilai);
kembalikan ms.ToArray();
}
public static void CheckOnNull(objek ini @ini, nama parameter string) {
if(@this.IsNull()) melempar ArgumentNullException(parameterName);
}
public static void CheckOnNull(objek ini @ini, nama parameter string, pesan string) {
if(@this.IsNull()) throw new ArgumentNullException(parameterName, pesan);
}
public static bool IsNull(objek ini @ini) {
kembalikan @ini == batal;
}
public static bool IsNotNull(objek ini @ini) {
kembali [email protected] ();
}
public static T UnsafeCast
mengembalikan nilai.IsNull() ? default(T) : (T)nilai;
}
public static T SafeCast
nilai kembaliannya adalah T? nilai.UnsafeCast
}
public static bool InstanceOf
nilai kembaliannya adalah T;
}
public static void SerializeXmlFile(objek ini o, string nama file) {
Serializer XmlSerializer = XmlSerializer baru(o.GetType());
if (!FileFolder.FileExists(fileName)) kembali;
menggunakan (FileStream stream = new FileStream(fileName, FileMode.Create, Fileaccess.Write)) serializer.Serialize(stream, o);
}
public static T DeserializeXmlFile
Ke;
Serializer XmlSerializer = XmlSerializer baru(typeof(T));
menggunakan (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) o = (T)serializer.Deserialize(stream);
kembali o;
}
string statis publik SerializeXml(objek ini o) {
Serializer XmlSerializer = XmlSerializer baru(o.GetType());
StringBuilder stringBuilder = StringBuilder baru();
menggunakan (TextWriter textWriter = new StringWriter(stringBuilder)) serializer.Serialize(textWriter, o);
kembalikan stringBuilder.ToString();
}
public static T DeserializeXml
return (T)Deserialisasi(xml, typeof(T));
}
objek statis publik Deserialize(string xml, Tipe tipe) {
objek o;
Serializer XmlSerializer = XmlSerializer baru (tipe);
menggunakan (TextReader textReader = new StringReader(xml)) o = serializer.Deserialize(textReader);
kembali o;
}
public static void Write(objek ini o) { Pesan.Write(o); }
public static void WriteEnd(objek ini o) { Pesan.WriteEnd(o); }
}
}