【发布时间】:2015-08-24 12:00:09
【问题描述】:
我在 C# 中有以下通用方法,可将 ASP.NET Web 表单应用程序中的客户端数据解析为某种定义的类型:
public static T ParseClientRequest <T> (object data)
{
var t = (System.Collections.Generic.Dictionary<string,object>) data;
T obj = (T)Activator.CreateInstance(typeof(T));
foreach(var pair in t) {
FieldInfo field = obj.GetType().GetField(pair.Key);
field.SetValue(obj, pair.Value);
}
return obj;
}
我有两个问题:
- 有没有不使用循环的有效方法(使用 LINQ 或其他方法)?或者它是否足够高效?
- 如果类型的字段之一是字符串以外的类型,则代码将引发异常。如何将对象类型解析为动态提供的类型?
【问题讨论】:
标签: c# asp.net .net linq generics