nameof在C#中包含运算符的想法很多。作为此运算符如何工作的示例,nameof(Customer.Name)将返回字符串"Name"。我有一个域对象。而且我必须绑定它。然后,我需要属性名称作为字符串。我希望它们是类型安全的。我记得在.NET 3.5中遇到了一种变通方法,该变通方法提供了nameoflambda表达式并涉及其中。但是,我无法找到此解决方法。谁能为我提供该解决方法?如果可能,我也对实现nameof.NET 2.0 功能的方法感兴趣。
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
解决方法是使用一个表达式树,然后将该表达式树拆开以找到相关树MemberInfo
。
不幸的是,由于.NET 2.0中不存在表达式树,因此实际上没有等效树。
避免输入错误的一种解决方案是拥有一组访问器,这些访问器获取PropertyInfo
特定属性的相关内容,并对它们进行单元测试。那将是其中唯一包含字符串的地方。这样可以避免重复,并使重构更加容易,但这有点苛刻。
- 3 回答
- 0 关注
- 851 浏览
添加回答
举报
0/150
提交
取消