在new出匿名对象的函数内可以直接调用该匿名对象的属性取值。

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

 

可是在其它函数就无法调用匿名对象的属性或方法。

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

这时,我们可以通过c#的反射机制取值:

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

 

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

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

在开发的时候,经常遇到对象的序列化,尤其是在和外部系统交互的时候。在调用其他接口获得数据的时候大多都是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# 匿名对象增加动态属性

在new出匿名对象的函数内可以直接调用该匿名对象的属性取值。

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

 

可是在其它函数就无法调用匿名对象的属性或方法。

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

这时,我们可以通过c#的反射机制取值:

C# - 匿名对象属性的赋值与取值
    

C# 匿名对象(匿名类型)、var、动态类型 dynamic
c# 匿名对象增加动态属性

 

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

相关文章:

  • 2021-06-20
  • 2022-12-23
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
猜你喜欢
  • 2022-03-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2018-02-01
  • 2022-12-23
相关资源
相似解决方案