我有一个名为Attributes
的类public class Attributes
{
public string Length { get; set; }
public string Size { get; set; }
public string Color { get; set; }
public string Material { get; set; }
public string Diameter { get; set; }
}
此类通过调用返回JSON的Web服务来填充。 Web服务每次都返回一组不同的属性,并且无法在编译时定义所有属性,因为这可能会导致数千个属性。
在c#中为这样的类建模的最佳方法是什么?
答案 0 :(得分:3)
您可以使用ExpandoObject
。事实上,ExpandoObject
只是一个包裹的Dictionary<string, object>
。
您可以直接创建&#39;属性:
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
或查询基础词典:
dynamic employee = new ExpandoObject();
((IDictionary<string, object>)employee).Add("Name", "John Smith");
您使用的是ExpandoObject
。你甚至可以混合两种用法。
此外,这使用JSON完美包装。
答案 1 :(得分:0)
我建议使用DataContractJsonSerializer来执行JSON数据的反序列化。使用DataContractJsonSerializer.UseSimpleDictionaryFormat设置为true,以使结果为Dictionary<string, object>
类型。
非常好用。