从集合中自动创建属性

时间:2014-04-08 15:01:29

标签: c#

我正在开发的项目将大量数据从后端源提取到各种集合(字典,observablecollections等)。为了使这些数据更易于访问,我们将这些集合项公开为属性。

这会创建大量样板代码,以将这些属性映射到其后端字段。我看过AutoMapper,看起来它可能是解决方案的一部分......但听起来它仍然需要手动创建属性列表。

我理想地想要的是将集合项公开为属性的通用方法。 (所有收集项都是强类型的,并且具有属性名称所需的关键字。)

感谢您的帮助。

更新:对于那些寻找代码示例的人:

Dictionary<string,Foo> myDictionary;
myDictionary.Add("MyPropertyName",new Foo());

我基本上想做:

 myDictionary.MyPropertyName

访问字典中的相应值。

1 个答案:

答案 0 :(得分:1)

使用带有字符串作为每个属性名称的可索引属性更有意义,而在内部类会将字符串映射到某个后端源。

通常,您可以从DynamicObject派生您的类型,它为此行为提供模板。

在即将推出的C#版本中(您可以获取Roslyn的预览版或源代码),他们引入了新的语法来启用&#34; dynamic&#34;使用语法x.$propertyName进行属性查找,该语法将扩展为x["propertyName"]