我正在執行自動化使用C#作爲編程語言在運行時定義的類型列表
我有一個Enum在表中保留列。我在每個列名的「說明」中保存這些列的數據類型。
每列都可以排序,排序我想驗證特定的列的排序後是正確的。我正在列中的數據列表中,編程排序,然後在屏幕上排序,閱讀內容,然後使用List.SequenceEquals
我想創建一個「類型」的列表(如在「描述」)。但看起來我無法創建運行時對象列表。
對此的任何解決方案?
CODE
{
public enum tranColumns
{
[Description("DateTime")]
InvoiceDate,
[Description("string")]
Customer,
[Description("string")]
InvoiceID,
[Description("string")]
LiabilityTypeDescription,
[Description("string")]
TransactionStatusDescription,
[Description("string")]
TestTransaction,
[Description("string")]
TransactionDate,
[Description("int")]
TransactionID,
[Description("string")]
SourceSystem,
[Description("string")]
ShipToGeocode,
[Description("DateTime")]
CreationTime
}
var type = MyExtensions.GetDataType(tranColumns.InvoiceDate); //Gets System.Type
List<type> list= new List<type>();
}
public static string GetEnumDescription(System.Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attributes != null && attributes.Length > 0)
return attributes[0].Description;
else
return value.ToString();
}
public static Type GetDataType(System.Enum value)
{
switch(GetEnumDescription(value).ToLower())
{
case "datetime":
return typeof(DateTime);
case "string":
return typeof(String);
case "int":
return typeof(Int32);
default:
Utilities.log("Unkwown datatype",LogType.ErrorEntry);
return typeof(Object);
}
}
不能創建的 「類型」 這樣的清單!
你的MyExtensions.GetDataType方法是做什麼的? – 2015-03-31 13:01:21
它簡單地讀取該描述中,使用一個開關殼體,並返回的typeof(String)或typeof運算(日期時間)或typeof運算(Int32)已 – Kirtiraj 2015-03-31 13:04:23
你應該提供該代碼。我們不知道它是否無缺陷。你可以,但我們沒有。 – 2015-03-31 13:09:06