我使用Castle Active Record'ActiveRecordBase类作为我的db对象的基类。这使我可以利用AR模式的好处,例如:如何从基类中隐藏方法?
MyClass clas = new MyClass();
clas.Number = 5;
clas.Save();
问题是,对于某些对象,我想隐藏这些方法。我怎样才能做到这一点?我不使用这些对象的接口。
编辑1: 为了更清楚:我想有10个类从基类继承,但其中3个不应该公开基类的一些方法。因此,例如对于MyClassB,这个:
MyClassB clasB = new MyClassB();
clasB.Number = 5;
clasB.Save();
应该是不可能的 - 此对象不应该能够保存()。编号2: 我读过c# hide from dervied classes some properties of base class。我同意这是不好的方法,但请记住,我必须使用ActiveRecordBase,我不能简单地修改它(至少如果我想坚持原始的Castle Active Record源)。
你的意思是隐藏,究竟是什么意思? – BoltClock 2011-01-26 10:33:54
那么你的意思是`MyClassB`不应该有`Number`属性? – BoltClock 2011-01-26 10:40:12