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

时间:2016-08-24 07:40:44

标签: c# anonymous-types anonymous-objects

我有一个带有多个匿名对象的静态类。每个对象具有不同数量的属性,但每个属性始终是已创建类的对象。

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"),        
    } 
}

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

1 个答案:

答案 0 :(得分:3)

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

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

但我不明白为什么你需要这样做。这不是C#like,这是一种强类型语言。在我看来,你应该重新考虑你的设计。

This可能会为您提供何时使用匿名类型

的起点