Kum*_*mar 6 .net c# dynamic visual-studio-2010 expandoobject
给出下面的代码
dynamic e = new ExpandoObject();
var d = e as IDictionary<string, object>;
for (int i = 0; i < rdr.FieldCount; i++)
d.Add(rdr.GetName(i), DBNull.Value.Equals(rdr[i]) ? null : rdr[i]);
Run Code Online (Sandbox Code Playgroud)
有没有办法让它不区分大小写,所以给定字段名称employee_name
e.Employee_name与e.employee_name一样有效
似乎没有一个明显的方式,也许是一个黑客?
我一直在使用这个"Flexpando"类(用于灵活的expando),它不区分大小写.
它类似于Darin的MassiveExpando答案,因为它为您提供字典支持,但通过将其作为字段公开,它节省了必须为IDictionary实现15个左右的成员.
public class Flexpando : DynamicObject {
public Dictionary<string, object> Dictionary
= new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
public override bool TrySetMember(SetMemberBinder binder, object value) {
Dictionary[binder.Name] = value;
return true;
}
public override bool TryGetMember(GetMemberBinder binder, out object result) {
return Dictionary.TryGetValue(binder.Name, out result);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |