2011-07-16 11 views
3

私はリフレクションを使用してエンティティ(T)からオブジェクトを作成しました。オブジェクトは私のテーブルの実装です。これは、列のリストを保持している、と私はリフレクションを使用してエンティティからそのプロパティを抽出します。プリミティブ型をnull可能オブジェクトにキャスト

public class Generic_Table<T> : Table 
    {   
     ...// in ctor 
     type = this.GetType().GetGenericArguments()[0]; // type of T 
     BuildColumns(type); 

     private void BuildColumns(Type type) 
     { 
      PropertyInfo[] properties = type.GetProperties(); 

      Columns = new KeyValuePair<string, Type>[properties.Count()]; 
      int i = 0; 
      foreach (PropertyInfo property in properties) 
      { 
       Columns[i++] = new KeyValuePair<string, Type>(property.Name, property.PropertyType);     
      } 
     } 

列のType値がなるように、私は、NULL可能タイプとしてPropertyType値をキャストする方法を探していますたとえば、あるプロパティが PropertyType値の場合にはintの場合はint?になります。

+0

私は答えを受け入れることができる前に15の評判を得る必要があります。 だから私は本当に、まだそれに取り組んでいません。 .. –

+0

私はすべてのヘルプの完全な答えをマークしました。私は今なぜ100%と言われているのか分かりません。 私はそれらをすべてマークしませんでしたが、私は答えを得た場所をマークしました –

答えて

3

これは何が必要でしょう。

Type nullableType = typeof(Nullable<>).MakeGenericType(property.PropertyType); 

MakeGenericType方法は、ジェネリック型引数のparams配列を受け入れます。

また、この記事はあなたがここでやっているものに類似した何かの良い例があります:

詳細は、ドキュメントを参照してください。
+0

thanks男 そのトリックをしました。 –

関連する問題