小编gwe*_*ner的帖子

在运行时获取C#中属性的字符串表示形式

我已经看过这个问题的反面很多次了,但是还没有看到如何做我想做的事情.

假设我有以下代码:

var myNewData = from t in someOtherData
            select new
            { 
                fieldName = t.Whatever,
                fieldName2 = t.SomeOtherWhatever
            };
Run Code Online (Sandbox Code Playgroud)

如果我希望数据绑定到此类,我的列定义必须包括硬编码字符串,如"fieldName"和"fieldName2".

有没有办法调用反射或其他东西,以便我可以做一些与下面的代码相同的事情(我知道下面的代码是无效的,但我正在寻找一个有效的解决方案).

string columnName = GetPropertyName(myNewData[0].fieldName);
Run Code Online (Sandbox Code Playgroud)

我的目标是,如果变量名在匿名类上发生更改,则会在修复所有引用之前出现编译时错误,这与当前数据绑定不同,后者依赖于直到运行时才检查的字符串.

任何帮助,将不胜感激.

c# linq data-binding reflection

4
推荐指数
1
解决办法
1062
查看次数

标签 统计

c# ×1

data-binding ×1

linq ×1

reflection ×1