我正在寻找一种方法将强类型属性名称列表传递到一个方法中,然后我可以剖析并获取调用者感兴趣的属性。我想这样做的原因是有一个复制方法只复制用户指定的字段。现在,该方法需要一个字符串列表,以便在反射中与 Getvalues 和获取属性方法一起使用,但我想防止重构属性和开发人员不更新字符串。
我在这里找到了这篇文章,但不幸的是,它没有做一个列表。我可以做类似的事情:
public static void Copy(Expression<Func<TObject>> propertiesToCopy )
{
}
然后让调用者做
PropertyCopier<List<string>>.Copy(() => data);
但是我必须指定调用者可以拥有多少属性,如下所示:
public static void Copy(Expression<Func<TObject>> propertiesToCopy,Expression<Func<TObject>> propertiesToCopy2, Expression<Func<TObject>> propertiesToCopy3 )
{
}
这将允许三个属性。无论如何将其添加到 List 或 Queryable<> 以允许调用者想要的尽可能多的属性?我尝试使用 Add in List 并使用 Expression
提前致谢
编辑:今晚我确实找到了几篇文章,这些文章提到了使用 C# param关键字来完成此操作。有没有更好或更有效的方法,或者这是最好的方法?