Jobというオブジェクトがあり、その中に文字列、int、列挙型がパブリックオブジェクトとしてあります。次に、各ジョブがキューに配置され、プロセスでキューを反復処理します。
私がやりたいのは、各ジョブをDequeue()するときに、一般的に各ジョブを反復処理して、パブリックオブジェクトの名前と値をコンソールに書き込むことができるということです。
オブジェクト名をコンソールに書き込む方法を理解し、明らかに値を書き込むことができますが、問題は、Jobオブジェクトから各パブリック文字列/整数/列挙型を取得する方法がわからないことです。
C#オブジェクトダンパー を見てきました C#:型のすべてのパブリック(取得と設定の両方)文字列プロパティを取得する 方法C#を使用して .Netの型付きオブジェクトのリストでオブジェクトのプロパティのすべての値を選択する方法そこで受け入れられた回答のいずれかをどのように使用するかを理解します。
これが私のJobクラスのコードです:
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
考え?