想知道是否有一种好方法(通用方法)可以动态地将子实体添加到父级的适当实体集中。现在我必须做这样的事情,并不是很优雅:
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 :(得分: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);
}