dynamic是c#裡面的動態型別,可在未知型別的情況訪問對應的屬性,非常靈活和方便。
使用json.net可以把乙個json字串轉換成乙個jobject物件,如果有已知強型別,如果有已知對應的強型別,可以直接轉成對應的型別。但如果沒有,要訪問json裡面對應的資料的時候,就顯得比較麻煩。我們可以借助dynamicobject來訪問對應的屬性。
dynamicobject
我們要建立乙個程式設計客棧動態類,用於訪問jobject,**如下:
public class jobjectaccessor : dynamicobject
public override bool trygetmember(getmemberbinder binder, out object result)
private object populate(jtoken token)
www.cppcns.com else if (token.type == jtokentype.array)
return objectaccessors;
}else
}}接下來就可以開始使用它了:
string json = @",'pets': }";
jobject jobj = jobject.parse(json);
dynamic obj = new jobjectaccessor(jobj);
console.writeline($": ");
console.writeline($": ");
執行一下程式,看一下輸出結果:
本文標題: c#使用dynamic型別訪問jobject物件
本文位址:
C 資料型別(dynamic)
自己在寫重構的時候用到了dynamic這個函式,然後就去網上找個找關於這個函式的有關內容,首先是對這個函式認識。關於這個函式乙個籠統的認識就是這個函式和var一樣是個萬能函式,什麼樣的資料型別符合,如果我們在用到用於接受一些資料的時候,但是這個傳過來的資料型別我們不知道是什麼型別的,那我們就可以用d...
Dynamic 動態型別 和雙問號 的使用
1.dynamic關鍵字用於宣告乙個動態物件,然後通過該動態物件去呼叫方法或讀寫屬性。以前我們都是在執行時通過反射,emit,codedom等技術來完成。建立乙個dynamic型別的物件需要使用乙個特殊的構建器叫expandoobject。dynamic aehyok new expandoobje...
C 4 0跨程式集使用 dynamic
今天寫 時偷懶用了dynamic,結果遇到問題,執行時始終無法獲取dynamic物件的屬性。原問題簡化後如下 程式集a包含sampleclass類,有乙個靜態方法,接收乙個dynamic型別引數並將其value屬性輸出。public class sampleclass 程式集b引用程式集a並呼叫ou...