【发布时间】:2013-09-24 13:28:21
【问题描述】:
我想编写一个通用函数,它接受一个对象和该对象的一系列属性。在函数内部,我想选择一个新的匿名对象,它只是传入对象的那些属性。
我想做这样的事情:
public class SimpleClass
{
public DateTime ADate {get; set;}
public string StringHere {get; set;}
public int ANumber {get; set;}
}
var testObj = new SimpleClass();
// set values here on testObj properties
DoStuffHere(testObj, StringHere, ANumber);
我可以将属性作为字符串传递,然后使用反射从传入的对象中获取属性,但我想知道是否有某种方法可以传递属性本身,这样我就可以获得智能感知和编译时间检查以防止错误的属性名称。我希望我的 getNewClass 函数采用任何类型的对象,并且是通用的。
编辑:我没有返回新的匿名类型。我认为我的函数名称听起来是这样的。我将在内部从指定的 testObj 列表中选择一个新的匿名类型,并从这些属性生成 PDF。
【问题讨论】:
-
哇返回匿名类型。看起来很有挑战性..也许烤一些IL;另一方面,您可以返回一个字典
是 -
如果你的意思不是让
getNewClassreturn 对象,那么我可能误解了这个问题;我在答案的第二部分中添加了
标签: c# .net generics reflection