在new出匿名對象的函數內能夠直接調用該匿名對象的屬性取值。
但是在其它函數就沒法調用匿名對象的屬性或方法。
這時,咱們能夠經過c#的反射機制取值:
文章出處:https://www.cnblogs.com/aucy/p/9102915.htmlhtml
文章出處:https://www.cnblogs.com/aucy/p/9102915.htmlhtml
======================================================json
在開發的時候,常常遇到對象的序列化,尤爲是在和外部系統交互的時候。在調用其餘接口得到數據的時候大多都是json字符串,而咱們相對其進行處理,正常思路是建一個與之對應的強類型的model。可是,有時候咱們不想新建一個 麻煩 想利用現有的強類型去進行處理,這時候咱們想到了用object 一個僞的匿名對象。而後利用反射取出字段值給現有類型的字段賦值 可是我在利用o反射取object的值的時候獲得的propertyinfo爲null,我就用其餘辦法解決了,可是有點麻煩。今天逛博客園發現了一個好用的方法 雖然不理解其中原理,可是經測試可用
List<object> obj = new List<object>();
obj.Add(new { aa = 1, bb = 1 });
obj.Add(new { aa = 1, bb = 2 });
var objs = obj.Select(p => p.Cast(new { aa = 0, bb = 0 })).ToList();
static class Extensions
{
public static T Cast<T>(this object obj, T sample)
{
return (T)obj;
}
}
學習下 能夠直接取出objs裏面的值 有那位牛人解釋下其中原理
原文:https://blog.csdn.net/s15981924260/article/details/80623035
c#
=======================================================================函數
另外在給個dynamic的參考,參考:post
C# 匿名對象(匿名類型)、var、動態類型 dynamic學習