Tag: dynamicobject

如何使用动态构建的lambda表达式创建和填充动态对象

我正在尝试从仅在运行时知道的数据集创建和填充动态对象。 在下面的代码中,我使用一些已知字段(ID,主数据,DisplayOrder,IsActive)和一个用户定义字段(电话号码)从我的数据集创建IEnumerable结果,这在设计时我不知道,因此必须动态构建。 下面的代码有效,但仅仅因为我已经对动态字段电话号码进行了硬编码。 如何动态构建Lambda表达式以处理仅在运行时已知的字段。 我想要相当于 string fieldName = ‘PhoneNumber = ‘; string fieldSource = ‘pd.tbList_DataText’; string expression = ‘pd=>new { ID = pd.ID, PrimaryData=pd.PrimaryData’; expression += fieldName; expression += FieldSource; expression += ‘.Where(ld => ld.DataRowID == pd.ID && ld.ListColumnID == 1).Select(ld => ld.DataField).DefaultIfEmpty(“”).First()})’; var results = primaryData.Select(expression); 那我该怎么做呢? 谢谢 // Get base Data IEnumerable primaryData […]

将类型’System.Dynamic.DynamicObject转换为System.Collections.IEnumerable

我成功地使用MVC3中的JavaScriptSerializer将json字符串反序列化为动态对象。 我无法弄清楚的是如何将它投射到我可以列举的东西上。 下面的foreach代码行是我最新的attemt,但它错误地说:“不能隐式地将类型’System.Dynamic.DynamicObject’转换为’System.Collections.IEnumerable’。如何转换或转换以便我可以遍历字典? public dynamic GetEntities(string entityName, string entityField) { var serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new[] { new MyProject.Extensions.JsonExtension.DynamicJsonConverter() }); dynamic data = serializer.Deserialize(json, typeof(object)); return data; } foreach (var author in GetEntities(“author”, “lastname”))

C#DynamicObject动态属性

假设我不能使用ExpandoObject并且必须像我这样自己滚动: – class MyObject : DynamicObject { dictionary _properties = dictionary(); public override bool TryGetMember(GetMemberBinder binder, out object result) { string name = binder.Name.ToLower(); return _properties.TryGetValue(name, out result); } public override bool TrySetMember(SetMemberBinder binder, object value) { _properties[binder.Name.ToLower()] = value; return true; } } 并进一步向下我的类层次结构 class MyNewObject : MyObject { public string Name { get […]