باستخدام النظام؛
باستخدام System.Collections.Generic؛
باستخدام System.Linq؛
باستخدام System.Text؛
باستخدام System.Reflection؛
باستخدام System.Data؛
باستخدام System.Data.Common؛
باستخدام System.Web.Script.Serialization؛
باستخدام System.IO؛
باستخدام System.Security.Cryptography؛
باستخدام System.ComponentModel؛
باستخدام System.Runtime.Serialization.Formatters.Binary؛
باستخدام System.xml.Serialization؛
مساحة الاسم Pub.Class {
فئة ثابتة عامة ObjectExtensions {
سلسلة ثابتة عامة ToJson(هذا الكائن obj){
return ToJson(obj, null);
}
سلسلة ثابتة عامة ToJson(هذا الكائن obj, IEnumerable<javaScriptConverter> jsonConverters) {
JavascriptSerializer serializer = new JavaScriptSerializer();
if (jsonConverters != null) serializer.RegisterConverters(jsonConverters ?? new JavaScriptConverter[0]);
إرجاع المسلسل.Serialize(obj);
}
public static T ConvertTo<T>(قيمة الكائن هذه) { return value.ConvertTo(default(T)); }
عام ثابت T ConvertTo<T>(قيمة الكائن هذه، T defaultValue) {
إذا (القيمة!= فارغة) {
var targetType = typeof(T);
محول فار = TypeDescriptor.GetConverter(value);
إذا (المحول! = فارغ) {
if(converter.CanConvertTo(targetType)) return (T) converter.ConvertTo(value, targetType);
}
converter = TypeDescriptor.GetConverter(targetType);
إذا (المحول! = فارغ) {
حاول { if(converter.CanConvertFrom(value.GetType())) return (T) converter.ConvertFrom(value); } يمسك {}
}
}
إرجاع القيمة الافتراضية؛
}
عام ثابت T ConvertTo<T>(قيمة الكائن هذه، T defaultValue، boolignignException) {
إذا (تجاهل الاستثناء) {
يحاول {
قيمة الإرجاع.ConvertTo<T>();
}
يمسك {
إرجاع القيمة الافتراضية؛
}
}
قيمة الإرجاع.ConvertTo<T>();
}
public static int ToInt(this object strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
البايت العام الثابت ToTinyInt(this object strValue, byte defValue) { byte def = 0; byte.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
public static short ToSmallInt(this object strValue, short defValue) { short def = 0; short.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
public static decimal ToDecimal(this object strValue, decimal defValue) { decimal def = 0; decimal.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
public static float ToFloat(this object strValue, float defValue) { float def = 0; float.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
public static Int64 ToBigInt(this object strValue, Int64 defValue) { Int64 def = 0; Int64.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
ToMoney العام الثابت العشري (هذا الكائن strValue, decimal defValue) { decimal def = 0; decimal.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
public static int ToInteger(this object strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), out def); عودة مواطنه == 0؟ قيمة القيمة: def؛ }
bool ثابت عام ToBool (هذا الكائن ExPRession، bool defValue) {
إذا (التعبير! = فارغ) {
إذا (string.Compare(Expression.ToString(), "true"، صحيح) == 0) يُرجع صحيحًا؛
إذا (string.Compare(Expression.ToString(), "false"، صحيح) == 0) يُرجع خطأً؛
إذا (string.Compare(Expression.ToString(), "1"، صحيح) == 0) يُرجع صحيحًا؛
إذا (string.Compare(Expression.ToString(), "0"، صحيح) == 0) يُرجع خطأً؛
}
إرجاع قيمة القيمة؛
}
public static int ToInt(this object strValue) { return strValue.ToInt(0); }
البايت العام الثابت ToTinyInt(هذا الكائن strValue) { return strValue.ToTinyInt(0); }
public static short ToSmallInt(this object strValue) { return strValue.ToSmallInt(0); }
العلامة العشرية العامة الثابتة ToDecimal(هذا الكائن strValue) { return strValue.ToDecimal(0); }
public static float ToFloat(this object strValue) { return strValue.ToFloat(0); }
public static Int64 ToBigInt(this object strValue) { return strValue.ToBigInt(0); }
العلامة العشرية العامة ToMoney(هذا الكائن strValue) { return strValue.ToMoney(0); }
public static int ToInteger(this object strValue) { return strValue.ToInteger(0); }
public static bool ToBool(this object strValue) { return strValue.ToBool(false); }
كائن ثابت عام InvoceMethod (هذا الكائن obj، اسم طريقة السلسلة، معلمات الكائن [] المعلمات) {
return InvoceMethod<object>(obj,methodName,parameters);
}
T InvoceMethod العام الثابت<T>(هذا الكائن obj, string MethodName) {
return InvoceMethod<T>(obj,methodName, null);
}
T InvoceMethod العام الثابت<T>(هذا الكائن obj، اسم طريقة السلسلة، معلمات الكائن []) {
var type = obj.GetType();
طريقة var = type.GetMethod(methodName);
if(method == null) throw new ArgumentException(string.Format("الطريقة '{0}' غير موجودة.",methodName),methodName);
قيمة var = الأسلوب.Invoc(obj, بارامترات);
إرجاع (القيمة هي T؟ (T) القيمة: default(T));
}
كائن ثابت عام GetPropertyValue(هذا الكائن obj, string propertyName) {
return GetPropertyValue<object>(obj, propertyName, null);
}
عامة ثابتة T GetPropertyValue<T>(هذا الكائن obj, string propertyName) {
return GetPropertyValue<T>(obj, propertyName, default(T));
}
عامة ثابتة T GetPropertyValue<T>(هذا الكائن obj, string propertyName, T defaultValue) {
var type = obj.GetType();
var property = type.GetProperty(propertyName);
if(property == null) throw new ArgumentException(string.Format("الخاصية '{0}' غير موجودة.", propertyName), propertyName);
var value = property.GetValue(obj, null);
العودة (القيمة هي T؟ (T) القيمة: defaultValue)؛
}
الفراغ الثابت العام SetPropertyValue (هذا الكائن obj، اسم خاصية السلسلة، قيمة الكائن) {
var type = obj.GetType();
var property = type.GetProperty(propertyName);
if(property == null) throw new ArgumentException(string.Format("الخاصية '{0}' غير موجودة.", propertyName), propertyName);
property.SetValue(obj, value, null);
}
عامة ثابتة T GetAttribute<T>(هذا الكائن obj) حيث T : Attribute {
return GetAttribute<T>(obj, true);
}
عامة ثابتة T GetAttribute<T>(هذا الكائن obj، bool includeInherited) حيث T : Attribute {
var type = (obj as Type ?? obj.GetType());
var attributes = type.GetCustomAttributes(typeof(T), includeInherited);
إذا ((السمات != فارغة) && (الطول > 0)) {
العودة (السمات [0] كـ T)؛
}
عودة فارغة؛
}
IEnumerable العام الثابت<T> GetAttributes<T>(هذا الكائن obj) حيث T : Attribute {
return GetAttributes<T>(obj);
}
IEnumerable العام الثابت<T> GetAttributes<T>(هذا الكائن obj، bool includeInherited) حيث T : Attribute {
var type = (obj as Type ?? obj.GetType());
foreach(سمة var في type.GetCustomAttributes(typeof(T), includeInherited)) {
إذا (السمة هي T) سمة الإرجاع (T) ؛
}
}
المنطق المنطقي العام الثابت IsType(هذا الكائن obj، نوع النوع) {
إرجاع obj.GetType().Equals(type);
}
public static T ToType<T>(قيمة الكائن هذه) { return (T)value; }
المنطق العام الثابت IsArray(هذا الكائن obj) {
return obj.IsType(typeof(System.Array));
}
المنطق المنطقي العام الثابت IsDBNull(هذا الكائن obj) {
إرجاع obj.IsType(typeof(DBNull));
}
بايت ثابت عام[] تسلسل (قيمة الكائن هذه) {
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(ms, value);
إرجاع ms.ToArray();
}
CheckOnNull باطل عام ثابت (هذا الكائن @this، اسم معلمة السلسلة) {
if(@this.IsNull()) طرح ArgumentNullException(parameterName);
}
CheckOnNull باطل عام ثابت (هذا الكائن @this، اسم معلمة السلسلة، رسالة السلسلة) {
if(@this.IsNull()) throw new ArgumentNullException(parameterName, message);
}
المنطق المنطقي العام الثابت IsNull(هذا الكائن @this) {
return @this == null;
}
المنطق المنطقي العام الثابت IsNotNull(هذا الكائن @this) {
return [email protected] ();
}
عام ثابت T UnsafeCast<T>(قيمة الكائن هذه) {
قيمة الإرجاع.IsNull() ؟ الافتراضي (T) : (T) القيمة؛
}
عامة ثابتة T SafeCast<T>(قيمة الكائن هذه) {
قيمة الإرجاع هي T؟ value.UnsafeCast<T>() : default(T);
}
المنطق المنطقي العام InstanceOf<T>(قيمة الكائن هذه) {
قيمة الإرجاع هي T؛
}
public static void SerializeXmlFile (هذا الكائن o، string fileName) {
XmlSerializer serializer = new XmlSerializer(o.GetType());
إذا عاد (!FileFolder.FileExists(fileName));
باستخدام (FileStreamstream = new FileStream(fileName, FileMode.Create, Fileaccess.Write)) serializer.Serialize(stream, o);
}
عام ثابت T DeserializeXmlFile<T>(string fileName) {
ل؛
XmlSerializer serializer = new XmlSerializer(typeof(T));
باستخدام (FileStreamstream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) o = (T)serializer.Deserialize(stream);
العودة س؛
}
سلسلة ثابتة عامة SerializeXml (هذا الكائن o) {
XmlSerializer serializer = new XmlSerializer(o.GetType());
StringBuilder stringBuilder = new StringBuilder();
باستخدام (TextWriter textWriter = new StringWriter(stringBuilder)) serializer.Serialize(textWriter, o);
إرجاع stringBuilder.ToString();
}
T العام الثابت DeserializeXml<T>(هذه السلسلة XML) {
return (T)Deserialize(xml, typeof(T));
}
كائن ثابت عام Deserialize(string xml, Type type) {
كائن س؛
XmlSerializer serializer = new XmlSerializer(type);
باستخدام (TextReader textReader = new StringReader(xml)) o = serializer.Deserialize(textReader);
العودة س؛
}
كتابة الفراغ الثابت العام (هذا الكائن o) { Msg.Write (o)؛ }
public static void WriteEnd(this object o) { Msg.WriteEnd(o); }
}
}