システムを使用する;
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 {
public static string ToJson(this object obj){
return ToJson(obj, null);
}
public static string ToJson(this object obj, IEnumerable
JavascriptSerializer シリアライザー = new JavaScriptSerializer();
if (jsonConverters != null)serializer.RegisterConverters(jsonConverters ?? new JavaScriptConverter[0]);
戻りserializer.Serialize(obj);
}
public static T ConvertTo
public static T ConvertTo
if(値 != null) {
var targetType = typeof(T);
var コンバータ = TypeDescriptor.GetConverter(値);
if(コンバーター!= null) {
if(converter.CanConvertTo(targetType)) return (T) Converter.ConvertTo(value, targetType);
}
コンバータ = TypeDescriptor.GetConverter(targetType);
if(コンバーター!= null) {
try { if(converter.CanConvertFrom(value.GetType())) return (T) Converter.ConvertFrom(value); } キャッチ {}
}
}
デフォルト値を返します。
}
public static T ConvertTo
if(ignoreException) {
試す {
戻り値.ConvertTo
}
キャッチ {
デフォルト値を返します。
}
}
戻り値.ConvertTo
}
public static int ToInt(this object strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), out def);戻り値 == 0 ? def値: デフォルト; }
public static byte 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 10 進数 ToDecimal(このオブジェクト strValue, 10 進数 defValue) { 10 進数 def = 0; 10 進数.TryParse(strValue.ToString(), 出力定義);戻り値 == 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値: デフォルト; }
public static 10 進数 ToMoney(このオブジェクト strValue, 10 進数 defValue) { 10 進数 def = 0; 10 進数.TryParse(strValue.ToString(), 出力定義);戻り値 == 0 ? def値: デフォルト; }
public static int ToInteger(this object strValue, int defValue) { int def = 0; int.TryParse(strValue.ToString(), out def);戻り値 == 0 ? def値: デフォルト; }
public static bool ToBool(this object ExPRession, bool defValue) {
if (式 != null) {
if (string.Compare(Expression.ToString(), "true", true) == 0) true を返します。
if (string.Compare(Expression.ToString(), "false", true) == 0) false を返します。
if (string.Compare(Expression.ToString(), "1", true) == 0) true を返します。
if (string.Compare(Expression.ToString(), "0", true) == 0) false を返します。
}
defValueを返します。
}
public static int ToInt(this object strValue) { return strValue.ToInt(0); }
public static byte ToTinyInt(this object strValue) { return strValue.ToTinyInt(0); }
public static short ToSmallInt(this object strValue) { return strValue.ToSmallInt(0); }
public static decimal ToDecimal(this object 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); }
public static 10 進数 ToMoney(this object 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); }
public static object InvokeMethod(this object obj, string methodName, params object[] パラメータ) {
return InvokeMethod<オブジェクト>(obj, メソッド名, パラメータ);
}
public static T InvokeMethod
return InvokeMethod
}
public static T InvokeMethod
var type = obj.GetType();
var メソッド = type.GetMethod(メソッド名);
if(method == null) throw new ArgumentException(string.Format("メソッド '{0}' が見つかりません。", methodName), methodName);
var value = メソッド.Invoke(obj, パラメータ);
return (値は T ? (T) 値 : デフォルト(T));
}
public static object GetPropertyValue(this object obj, string propertyName) {
return GetPropertyValue<オブジェクト>(obj, propertyName, null);
}
public static T GetPropertyValue
return GetPropertyValue
}
public static T GetPropertyValue
var type = obj.GetType();
var プロパティ = type.GetProperty(propertyName);
if(property == null) throw new ArgumentException(string.Format("プロパティ '{0}' が見つかりません。", propertyName), propertyName);
var 値 = property.GetValue(obj, null);
return (値は T ? (T) 値 :defaultValue);
}
public static void SetPropertyValue(このオブジェクト obj, string propertyName, object value) {
var type = obj.GetType();
var プロパティ = type.GetProperty(propertyName);
if(property == null) throw new ArgumentException(string.Format("プロパティ '{0}' が見つかりません。", propertyName), propertyName);
property.SetValue(obj, 値, null);
}
public static T GetAttribute
GetAttribute
}
public static T GetAttribute
var type = (obj as Type ?? obj.GetType());
var 属性 = type.GetCustomAttributes(typeof(T), includeInherited);
if((attributes != null) && (attributes.Length > 0)) {
return (attributes[0] as T);
}
null を返します。
}
public static IEnumerable
GetAttributes
}
public static IEnumerable
var type = (obj as Type ?? obj.GetType());
foreach(type.GetCustomAttributes(typeof(T), includeInherited)) の var 属性
if(属性が T) 利回り戻り値 (T) 属性;
}
}
public static bool IsType(このオブジェクト obj, Type タイプ) {
obj.GetType().Equals(type) を返します。
}
public static T ToType
public static bool IsArray(このオブジェクト obj) {
obj.IsType(typeof(System.Array)) を返します。
}
public static bool IsDBNull(このオブジェクト obj) {
obj.IsType(typeof(DBNull)) を返します。
}
public static byte[] Serialize(このオブジェクトの値) {
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = 新しい BinaryFormatter();
bf1.Serialize(ms, value);
戻りms.ToArray();
}
public static void CheckOnNull(このオブジェクト @this, string パラメータ名) {
if(@this.IsNull()) throw new ArgumentNullException(parameterName);
}
public static void CheckOnNull(このオブジェクト @this, 文字列パラメータ名, 文字列メッセージ) {
if(@this.IsNull()) throw new ArgumentNullException(parameterName, message);
}
public static bool IsNull(this object @this) {
@this == null を返します。
}
public static bool IsNotNull(this object @this) {
return [email protected] ();
}
public static T UnsafeCast
戻り値.IsNull() ?デフォルト(T) : (T)値;
}
public static T SafeCast
戻り値は T ? value.UnsafeCast
}
public static bool InstanceOf
戻り値は T です。
}
public static void SerializeXmlFile(このオブジェクト o, string fileName) {
XmlSerializer シリアライザー = new XmlSerializer(o.GetType());
if (!FileFolder.FileExists(fileName)) が戻る;
using (FileStream stream = new FileStream(fileName, FileMode.Create, Fileaccess.Write))serializer.Serialize(stream, o);
}
public static T DeserializeXmlFile
に;
XmlSerializer シリアライザー = new XmlSerializer(typeof(T));
using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) o = (T)serializer.Deserialize(stream);
を返します。
}
public static string SerializeXml(this object o) {
XmlSerializer シリアライザー = new XmlSerializer(o.GetType());
StringBuilder stringBuilder = new StringBuilder();
using (TextWriter textWriter = new StringWriter(stringBuilder))serializer.Serialize(textWriter, o);
stringBuilder.ToString() を返します。
}
public static T DeserializeXml
return (T)Deserialize(xml, typeof(T));
}
public static object Deserialize(string xml, Type type) {
オブジェクト o;
XmlSerializer シリアライザー = 新しい XmlSerializer(type);
using (TextReader textReader = new StringReader(xml)) o =serializer.Deserialize(textReader);
を返します。
}
public static void Write(this object o) { Msg.Write(o); }
public static void WriteEnd(this object o) { Msg.WriteEnd(o); }
}
}