2010-01-15 65 views
0

想知道是否有一種可以動態地將子實體添加到父實體集的好方法(通用方法)。現在我必須做這樣的事情,它不是很優雅:將子實體添加到父實體集

public int AppendChild<T>(PATIENT patient, T child) 
    where T : EntityBase 

    switch (typeof(T).Name) 
    {    
    case "EYE_EXAM": 
      patient.EYE_EXAMS.Add((EYE_EXAM)child); 
      break; 

    case "LEGS_EXAM": 
      patient.LEGS_EXAMS.Add(LEGS_EXAM)child); 
      break; 

    //etc, a very long list of possible types goes here 

    } 

有沒有更好的方法來做到這一點?感謝您的解答

+0

你好,如果你發現我的答案有幫助,就真是巨大的,如果你可以將其標記爲接受的答案。謝謝!如果沒有,請告訴我如何改進它,我很樂意這樣做。 – msigman 2012-03-24 16:09:19

回答

0
public void CreateChildIfNull<T>() 
{ 
    var child = Activator.CreateInstance(typeof(T)); 
    Entity.GetType().GetProperty(typeof(T).Name).SetValue(patient, child , null); 
} 

public void CreateChildIfNull(LambdaExpression Child) 
    { 
     Type ChildType = Child.Body.Type; 
     var myvar = Activator.CreateInstance(ChildType); 
     Entity.GetType().GetProperty(ChildType.Name).SetValue(Entity, myvar, null); 
    } 
相關問題