擴展方法對json序列化及反序列化
this+類型名+變量名,.NET 3.0 之後新增的一種特性,叫“擴展方法”。
int類型變量都能調用toString()方法,將int類型變量轉換成string型變量;如果需要更改轉換的形式,比如將int類型變量轉換成指定格式的字符串,並且這種方法調用非常頻繁,可以編寫擴展方法。擴展方法能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。
例如下列代碼:
namespace ExtensionMethods { public static class MyExtensions { public static int zzyhost(this String str) { return 0; } } }
那麽在其他類下只需要 using ExtensionMethods引入該命名空間;,所有 string 類型的對象就都擁有了 zzyhost() 這個方法,而無需重寫一個 string 類,使用時直接調用:
string s = "Hello zzyhost"; int i = s.zzyhost();
在做web項目時,經常要將對象轉json,所以可以將轉換方法寫成擴展方法,在轉換時直接調用。
擴展方法:
/******************************************************************************** ** Title: SerializerUtil ** Author: dwx ** E-mail [email protected]
調用擴展方法示例:
result res=new result(); string data=null; //對象序列化 data = res.ToJson(); //json字符串反序列化 result newRes=new result(); newRes=data.FromJson<result>();
擴展方法對json序列化及反序列化