使用PropertyInfo.PropertyType分配列表类型,使类型未找到

时间:2016-02-10 20:54:07

标签: c# .net

如果这是一个愚蠢的问题我很抱歉,我只是开始使用这些东西,但我在通过Type变量分配一种类型的列表时遇到了一些麻烦。该方法应该为对象创建和分配属性。我得到了一个&#34;类型或命名空间&#39; propType&#39;无法找到&#34; parseEnumList<propType>点错误。有人可以告诉我为什么我不能将列表类型设置为属性的类型吗?

public T getFromForm<T>(){
    NameValueCollection form = HttpContext.Current.Request.Form;
    T t = Activator.CreateInstance<T>();

    foreach (PropertyInfo prop in typeof(T).GetProperties())
    {
        Type propType = prop.PropertyType;

        if (IsPropertyACollection(prop))
            prop.SetValue(t, parseEnumList<propType>(form.Get(prop.Name)), null);
        else if (!string.IsNullOrEmpty(form.Get(prop.Name)))
            prop.SetValue(t, Convert.ChangeType(form.Get(prop.Name),propType), null);
    }

    return t;
}

提前致谢。

编辑:这是parseEnumList

的代码
public List<T> parseEnumList<T>(string list)
{
    List<string> stringList = list.Split(',').ToList<string>();

    List<T> enumList = stringList.ConvertAll(delegate(string x)
    {
        return (T)Enum.Parse(typeof(T), x);
    });

    return enumList;
}

0 个答案:

没有答案