2016-08-03 4 views
0

私はco、sto、perの3つのリストを持っています。 各エンティティco stoおよびperには、フィールドGUIDがあります。 は、私はすべてのリストについては、助けてください.netのいくつかのプロパティの一般的な塗りつぶし

public static void FillGuids (List<> list) 
     { 
      foreach (var c in list) 
      { 

      } 
     } 

よう 何かをGUIDを生成するために、いくつかのメソッドを作成する必要があります。

public static void FillGuids<T>(List<T> list) 
{ 
    PropertyInfo prop = typeof(T).GetProperty("GUID"); 
    if (prop == null) return; // no GUID property 

    list.ForEach(x => prop.SetValue(x, Guid.NewGuid())); 
} 

GUID場合はパブリックプロパティではなく、プライベートフィールドあなたの代わりにGetField()を使用することができます: は

が あなたは、一般的なアプローチと反射でこれを行うことができます

答えて

1

ありがとう

FieldInfo field = typeof(T).GetField("GUID", BindingFlags.NonPublic); 
+0

はあなたに感謝しますしかし、これを解決するために多態性を使用することについてあなたは考えていますか? – Ovidiu

+0

多態性を持つ@Ovidiu 'List '、 'List '、 'List 'の3つのメソッドが必要ですが、リフレクションは必要ありませんが、これらの3つから 'x.GUID = Guid.NewGuidタイプにはこのフィールド/プロパティがあります。 –

+0

ポイントは、私は1つの単一のメイクを持つためにパラメータリストでそのメソッドを作る必要があります – Ovidiu

関連する問題