C# - 匿名對象屬性的賦值與取值


在new出匿名對象的函數內可以直接調用該匿名對象的屬性取值。

 

可是在其它函數就無法調用匿名對象的屬性或方法。

這時,我們可以通過c#的反射機制取值:

 

文章出處:https://www.cnblogs.com/aucy/p/9102915.html

======================================================

C# 匿名對象的序列化

在開發的時候,經常遇到對象的序列化,尤其是在和外部系統交互的時候。在調用其他接口獲得數據的時候大多都是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

=======================================================================

另外在給個dynamic的參考,參考:

C# 匿名對象(匿名類型)、var、動態類型 dynamic

c# 匿名對象增加動態屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM