和感谢的任何援助C#设计模式:通用方法?
为:
public abstract class EntityBase
{
protected void Create(EntityBase c)
{
Log.Audit(c);
}
}
public class Customer : EntityBase
{
public void CreateCustomer(Customer c)
{
Create(c);
}
}
}
public class Car : EntityBase
{
public void CreateCar(Car c)
{
Create(c);
}
}
}
对于上面的例子 1)你将如何实现对方法签名: Log.Audit(C);
2)在审计(c)方法中,我们需要将c转换为适当的类型,并遍历整个对象的属性以进行审计。这将如何完成。我正在考虑类似......
public Audit(T t)
{
switch (t.GetType())
{
case Customer:
//Audit Customer
Audit(<Customer> t);
break;
case Car:
//Audit Car
Audit(<Car> t);
}
}
只是一个猜测,任何帮助将是伟大的。
注意:如果您可以想到更好的架构此方法的方法,请告诉我。
再次感谢。 Steven