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]);
有没有办法让它不区分大小写,所以给定字段名称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);
    }
}
| 归档时间: | 
 | 
| 查看次数: | 3266 次 | 
| 最近记录: |