从静态类c#访问匿名对象属性

本文关键字:对象 属性 访问 静态类 | 更新日期: 2023-09-27 18:03:39

我有一个包含多个匿名对象的静态类。每个对象都有不同数量的属性,但每个属性都是已创建类的对象。

static public class Fields{
    static public Object FieldInfo1 = new {
        Customer = new FieldInformation("value1","value2")        
    } 
    static public Object FieldInfo2 = new {
        Customer = new FieldInformation("value1","value2"),
        Company = new FieldInformation("value1","value2"),        
    } 
}

我尝试访问Fields.FieldInfo1.Customer在第二类(程序。cs,它是一个控制台应用程序),但它不工作,我只得到Fields.FieldInfo1.我做错了什么?

从静态类c#访问匿名对象属性

您需要将其强制转换为对象的类型。因为你没有(在编译时)强制转换as dynamic:

var obj = Fields.FieldInfo1 as dynamic;
var value = obj.Customer.Prop1; // "value1"

但是我不明白你为什么要这样做。这与c#不同,c#是一种强类型语言。我认为你应该重新考虑你的设计。

对于何时使用匿名类型

是正确的,这可以为您提供一个起点。