解决C#中缺乏用于类型安全数据绑定的'nameof'运算符的解决方法?

nameof在C#中包含运算符的想法很多。作为此运算符如何工作的示例,nameof(Customer.Name)将返回字符串"Name"

我有一个域对象。而且我必须绑定它。然后,我需要属性名称作为字符串。我希望它们是类型安全的。

我记得在.NET 3.5中遇到了一种变通方法,该变通方法提供了nameoflambda表达式并涉及其中。但是,我无法找到此解决方法。谁能为我提供该解决方法?

如果可能,我也对实现nameof.NET 2.0 功能的方法感兴趣。


慕的地8271018
浏览 820回答 3
3回答

开心每一天1111

解决方法是使用一个表达式树,然后将该表达式树拆开以找到相关树MemberInfo。不幸的是,由于.NET 2.0中不存在表达式树,因此实际上没有等效树。避免输入错误的一种解决方案是拥有一组访问器,这些访问器获取PropertyInfo特定属性的相关内容,并对它们进行单元测试。那将是其中唯一包含字符串的地方。这样可以避免重复,并使重构更加容易,但这有点苛刻。
打开App,查看更多内容
随时随地看视频慕课网APP