我有一个使用 Autofac 实例化对象的项目
builder.RegisterType<AbcWebWorkContext>().As<IWorkContext>().InstancePerHttpRequest();
这AbcWebWorkContext
是一个子类WebWorkContext
:
public partial class AbcWebWorkContext : WebWorkContext
在我的AbcWebWorkContext
我想隐藏父类的方法和属性
protected new Customer GetCurrentCustomer(){ //do stuff }
new public Customer CurrentCustomer { //do studd }
但是当有人打电话
_workContext.CurrentCustomer
基类属性被调用。如果我这样称呼它
((AbcWebWorkContext) _workContext).CurrentCustomer
有用。
我想知道为什么我不能隐藏父方法。我无法更改被调用的类,因为它位于NopCommerce
's core 中,我不想更改。
为什么不隐藏方法?
方法的基类声明:
protected Customer GetCurrentCustomer() { // do stuff }
public Customer CurrentCustomer{ // do stuff }
调用GetType()
会_workcontext
输出
{Name = "AbcWebWorkContext" FullName = "Nop.Web.Framework.AbcWebWorkContext"}
类型层次结构是IWorkContext
(接口)« WebWorkContext
«AbcWebWorkContext
_workContext
被声明为IWorkContext
并且Autofac生成一个实例为AbcWebWorkContext
(如上所示)