我有一个名为Job的对象,它内部有字符串,整数和枚举作为公共对象。然后将每个作业放入一个队列中,并遍历流程中的队列。将容器对象中的所有公共对象(字符串/整数/枚举)的值写入控制台
我想要做的是,当我出列每个作业时,我可以一般地遍历每个作业并将公共对象名称和值写入控制台。
我想出了如何编写对象名称到控制台,我可以明显写入值,但问题是我不知道如何从Job对象获取每个公共字符串/ int /枚举。
我已经看了 C# object dumper How to select all the values of an object's property on a list of typed objects in .Net with C# 但不明白我怎么会请使用接受答案的出现。
下面的代码到我的作业类:
class Job
{
#region Constructor
public Job()
{
}
#endregion
#region Accessors
public int var_job { get; set; }
public jobType var_jobtype { get; set; } //this is an enum
public string var_jobname { get; set; }
public string var_content { get; set; }
public string var_contenticon { get; set; }
#endregion
}
这里是一个的返回变量的名称代码:(从https://stackoverflow.com/a/2664690/559988)
GetName(new {Job.var_content}) //how I call it
static string GetName<T>(T item) where T : class
{
return typeof(T).GetProperties()[0].Name;
}
理想我有一个输出到控制台这样:
Queuing Jobs Now
--------------------
var_job = its value
var_jobtype = its value
var_jobname = its value
var_content = its value
var_contenticon = its value
想法?
使用反射遍历属性,获取值,使用它的tostring()方法。或者重写toString(或另一种方法),从类中构建一个很好的输出。当然,你必须保持这一点...... – 2012-01-03 17:34:13
我想我逐渐通过在这里看例子:http://msdn.microsoft.com/en-us/library/aa332475(v=vs.71 ).aspx当我得到它时,我会发布我的解决方案。 – cvocvo 2012-01-03 17:50:15
为什么不能在你的''ToString'(http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx)(或者用不同的名字写一个类似的方法)工作类? – 2012-01-03 18:40:57