すべてのフィールドを格納するためのリストを取得する必要があります - クラスの値
const string
以下に貼り付けたように、クラスはパブリック変数のほんの一部です。
public class HTDB_Cols
{
public class TblCustomers
{
public const string CustID = "custID",
Name = "name",
CustType = "custType",
AddDate = "addDate",
Address = "address",
City = "city",
Phone = "phone",
Cell = "cell";
}
}
これは、すべてのテーブルの列名を表す文字列のリストを取得できるようにする文字列のリストを返すメソッドですが、エラーが発生するため、このコードでは何かが機能しません
「非静的フィールドにはターゲットが必要です」。
public class GetClassFields
{
public static List<string> AsList(string TableName)
{
return typeof(HTDB_Cols).GetNestedTypes()
.First(t => String.Compare(t.Name, TableName, true) == 0)
.GetFields()
.Select(f => f.GetValue(null) as string)
.ToList();
}
}
次のように使用しようとしています:
foreach (string tblCol in RobCS_212a.Utils.Reflct.GetClassFields.AsList (DBSchema.HTDB_Tables.TblCustomers))
{
Response.Write(string.Concat(tblCol, "<br />"));
}
タイプ 'DBSchema.HTDB_Cols+TblTimeCPAReport' で定義されたフィールド 'tbName' は、タイプ 'DBSchema.HTDB_Cols' のターゲット オブジェクトのフィールドではありません。