2012-12-18 76 views
-3

可能重複:
Detecting a Nullable Type via reflection怎麼知道通過反射可空類型

我有這樣的代碼:

string type = string.Empty; 
PropertyInfo[] propertyInfos = typeof(T).GetProperties(); 
foreach (var item in propertyInfos) 
    if (item.Name.ToUpper() == searchField.ToUpper()) 
    { 
     type = item.PropertyType.FullName; 
     break; 
    } 

switch (type) 
{ 
    case "System.Int32": 
     //... 
     break; 
    case "System.Single": 
     //... 
     break; 
} 

代碼工作,但問題是當類型是可空的。如何知道該類型是否爲空?可空類型(int32?long?double?)以及如何將字符串轉換爲此可空類型?

感謝,

+2

你在這裏做張貼問題之前,任何研究?看起來不像@Habib找到的那樣。請在發佈任何問題之前做一些可達:) –

+0

是你的工作.. –

回答

0

嘗試下面的代碼將幫助您爲

System.Reflection.FieldInfo[] fieldsInfos = typeof(NullWeAre).GetFields(); 

     foreach (System.Reflection.FieldInfo fi in fieldsInfos) 
     { 
      if (fi.FieldType.IsGenericType 
       && fi.FieldType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) 
      { 
       // We are dealing with a generic type that is nullable 
       Console.WriteLine("Name: {0}, Type: {1}", fi.Name, Nullable.GetUnderlyingType(fi.FieldType)); 
      } 

    }