2010-01-22 96 views
2

我们有要求提供用户友好的类型描述。我们创建了一个将类型映射到描述的资源文件。将字符串转换为表达式树?

将点用下划线替换的实例的全名用作键。 描述是一个字符串,并且包含引用实例中的属性的模板。

当我们得到一个实例时,我们得到它的类型,获得密钥,并用它来查找资源值。然后使用正则表达式来提取这些模板属性。然后使用反射来实际获取该属性的值。

例如。 实例可能是地址 的关键将是MyNameSpace_MyPublicTypes_Address(说全名is'MyNameSpace.MyPublicTypes.Address“)

描述可以是‘用户停留在{} State.City在{COUNTRY}’ - 州和国家是Address类的属性。国家有一个地产城市。

是否有可能有类似 'obj => obj.State.City'或'obj => obj.Country'?或某种表达?

我使用的是obj,因为它是反射实例。

感谢任何帮助。不确定这个问题是否曾被问过。

+1

你见过这个问题吗? http://stackoverflow.com/questions/159017/named-string-formatting-in-c – Jimmy 2010-01-22 18:51:43

回答

1

这很漂亮 - 动态LINQ库(.NET 3.5示例之一)的功能。来源是all available,或使用see here。您应该能够将解析字符串的代码追踪到Expression s。当然,在.上拆分并手工组装并不难,我有一个动态的OrderBy执行here这样做。

+0

谢谢Marc。我还没有看到动态的LINQ库。如果它帮助我找到反射物体的属性,那就太棒了! – AlwaysAProgrammer 2010-01-22 21:36:30