小编Sal*_*qui的帖子

C#myclass.[(col.ColumnName)] = row [(col.ColumnName)]表示预期的标识符?

下面的代码在"emp.(col.ColummnName)"下给出了一个红色的边框.错误是" 预期的标识符 "

foreach (DataColumn col in dt.Columns)
{
   emp.(col.ColumnName) = row[(col.ColumnName)];
}
Run Code Online (Sandbox Code Playgroud)

emp是一个自定义类,其属性名对应于dataTable dt中的列名.

我怀疑我必须以不同方式构造表达式,以便我可以使用方法调用的结果(col.ColumnName)引用类emp的属性.

任何想法将不胜感激.

==========================

最终答案与工作功能代码;

public void rowToObject(ref DataRow dr, ref object myObj)
{
    foreach (DataColumn dc in dr.Table.Columns)
    {
        string colName = dc.ColumnName;
        object colValue = dr[colName];

        if (object.ReferenceEquals(colValue, DBNull.Value))
        {
            colValue = null;
        }

        PropertyInfo pi = myObj.GetType().GetProperty(colName);
        if (pi != null && colValue != null)
        {
            Type propType = null;
            Type nullableType = Nullable.GetUnderlyingType(pi.PropertyType);

            if (nullableType != null)
            { …
Run Code Online (Sandbox Code Playgroud)

c# reflection

0
推荐指数
1
解决办法
688
查看次数

标签 统计

c# ×1

reflection ×1