【发布时间】:2013-11-07 15:20:48
【问题描述】:
我在 Visual Studio 2012 中使用 .NET 4.0、C# 4.0 以及 Code First 和 Entity Framework。
我有一组类,我想将它们用作各种报告的基础。报告的数据保存在 SQL 数据库中。一个示例类是:
public class DocumentTrackerChaseReport
{
public int DocumentTrackerChaseReportID { get; set; }
public int CaseID { get; set; }
public int DocumentID { get; set; }
[Description("Case ID")]
public String CaseIdentifier { get; set; }
[Description("Document type")]
public String DocumentCategory { get; set; }
[Description("Contact")]
public String ContactName { get; set; }
[Description("Phone number")]
public String ContactPhoneNumber { get; set; }
[Description("email address")]
public String ContactEmail { get; set; }
public TrackingActionType TrackingActionType { get; set; }
}
Description 属性既可用作报告的标题,也可指示要从报告中排除哪些属性。
我有一种方法可以从this question 中提取标题作为字符串数组
我还可以生成一个方法来检查字段/属性是否具有描述属性。
我缺少的关键要素是一种直接且通用的方式来生成报告的每一行,省略不具有此属性的字段。我可以使用反射遍历所有字段并检查报告每一行的属性,但这似乎很冗长。
有没有优雅的解决方案?
【问题讨论】:
-
如果你想让这个完全通用/常规,那么在这里使用反射是不可避免的,但是你表达问题的方式听起来你对此并不满意。您能否更具体地说明您对优雅的定义,可能会帮助您更快地得到答案。
-
谢谢。不是我想避免反射,而是检查每一行的每一列感觉并不高效或优雅。
标签: c# .net generics system.reflection