如何使用局部变量作为类型

时间:2018-07-03 05:37:06

标签: c# asp.net asp.net-mvc asp.net-web-api

我正在使用Web API进行一个角度项目,需要从表单发布的值映射实体 TblEmployee

我已经创建了一个静态函数 ConvertValue 来动态转换类型,但是调用此函数时,我无法传递确切的参数。

下面是我的代码,在编译时出现此错误:

  

'propertyInfo'是一个变量,但像类型一样使用。

public partial class TblEmployee
{
    public int EmployeeId { get; set; }
    public string Name { get; set; }
    public string City { get; set; }
}

public int Create()
{
    TblEmployee employee = new TblEmployee();

    Dictionary<String, Object> _formvalue = new Dictionary<String, Object>();

    foreach (string key in HttpContext.Request.Form.Keys)
    {
        string val = HttpContext.Request.Form[key];
        var propertyInfo = typeof(TblEmployee).GetProperty(key);   

        if (propertyInfo != null)
        {                                 
            var myVal = Filters.ConvertValue<propertyInfo.PropertyType.Name>(val);
            propertyInfo.SetValue(employee, myVal);
        }
    }   

    return objemployee.AddEmployee(employee);           
}

public static T ConvertValue<T>(string value)
{
    return (T)Convert.ChangeType(value, typeof(T));
}

0 个答案:

没有答案