1

目前我正在使用 sql 反射。我发现如果我想进行专门查询,最容易通过创建一个从另一个继承的新类并为我的专门查询添加 2 个成员/列来获得结果。然后由于我的 c# 代码中 lib 中的反射,我可以编写 foreach(var v in list) { v.AnyMember and v.MyExtraMember)

现在,我可以在函数内定义一个类,而不是让类分散或修改我的主 DB.cs 文件吗?我知道我可以通过编写 new {name=val, name2=...}; 创建一个匿名对象;但我需要在通用函数 func(query, args) 中传递此类;

4

3 回答 3

3

如果您将字典隐藏在 TryGetMember/TrySetMember 的实现后面,请查看DynamicObject,也许它可以满足您的需求。有一个小例子,点击链接。

于 2010-06-18T08:15:15.373 回答
1

类(一般的类型)不能在方法内部定义。多哈。

于 2010-06-18T07:17:38.427 回答
1

这是可能的(虽然不简单),但是生成的类在编译时是未知的,所以你不能使用v.MyExtraMember. 你基本上会得到一个动态创建的匿名对象,所以你必须使用反射来访问额外的成员。

于 2010-06-18T07:22:15.157 回答