一般專案中我們經常用到資料json的序列化與反序列化,為了方便在需要的地方快速使用,一般建議都封裝為靜態擴充套件方法,在需要的地方可直接使用。
ps:若要新增此擴充套件方法,必須得在nuget包中新增 newtonsoft.json 的引用。
usingsystem;
using
system.collections.generic;
using
system.text;
using
newtonsoft.json;
using
newtonsoft.json.converters;
using
newtonsoft.json.serialization;
namespace
demoframe_basic.extensions
if(isnullvaluehandling)
options.nullvaluehandling =nullvaluehandling.ignore;
options.referenceloophandling =referenceloophandling.ignore;
options.converters = new list };
return
obj.tojson(options);
}//////
json字串
/// ///
需要序列化的物件 例:t.tojson(settings)
///json序列化設定
///json字串
public
static
string tojson(this
object
obj, jsonserializersettings settings)
//////
返回相關設定格式字串
/// ///
///格式 例:yyyy-mm-dd hh:mm:ss
///設定格式字串
public
static
string todatetimestring(this
object obj, string
format)
//////
得到字串的byte
/// ///
///byte
public
static
byte getbytes(this
string
str)
public
static
bool tobool(this
string str, bool defaultvalue = false
)
public
static
short toshort(this
string str, short defaultvalue = 0
)
public
static
int toint(this
string str, int defaultvalue = 0
)
public
static
long tolong(this
string str, long defaultvalue = 0
)
public
static
double todouble(this
string str, double defaultvalue = 0
)
public
static tenum toenum(this
string str, bool ignorecase = true, tenum defaultvalue = default(tenum)) where tenum : struct
public
static t tonettype(this
string str, bool isignorenull = true, bool isignoreex = false
) ;
try
else
if ("
\"\"
" ==str)
else
}catch
(exception)
}public
static t tonettype(this
string
str, jsonserializersettings settings)
else
if ("
\"\"
" ==str)
else
}catch
(exception)
}//////
比較是否相等,忽略大小寫
/// ///
//////
public
static
bool equalsignorecase(this
string a, string
b)
}}
C 語法之擴充套件方法
擴充套件方法使你能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。這是msdn的描述。上面幾句我看好多部落格都是這樣開頭的。所以我也這樣開頭。一 為什麼要有擴充套件方法?開頭也說了,無...
c 之靜態函式和靜態方法
1 物件與物件之間要共享資料,則需要使用靜態成員或靜態方法。2 在類中宣告靜態成員變數,即使不例項化物件,也可以我靜態成員變數分配空間。因為靜態成員變數在物件建立之前就已經被分配了記憶體空間 3 靜態成員雖在類中,但它並不是隨物件的建立而分配記憶體空間的,也不是隨物件的撤銷而釋放 一般的成員在物件建...
專案中常用的C 擴充套件方法
我們經常使用一些匿名委託來處理一些邏輯 但是在某些情況下,有可能委託是null,要是直接執行可能會拋異常 所以提供此擴充套件方法,直接可以使用例如 action.execute 來執行 namespace system public static void execute this actionac...