我目前正在使用nopCommerce源代码,并尽我所能避免编辑源代码,而是使用与源代码分离的部分类和插件,我们是否应该永远需要升级版本。覆盖部分类中的虚拟方法
我想做出一些改变到下订单,通过在同一组件使用部分类的代码:
一部开拓创新的源代码:
namespace Nop.Services.Orders {
public partial class OrderProcessingService : IOrderProcessingService {
public virtual PlaceOrderResult PlaceOrder(ProcessPaymentRequest processPaymentRequest)
{ //....
我的部分类:
namespace Nop.Services.Orders {
public partial class OrderProcessingService : IOrderProcessingService {
public override PlaceOrderResult PlaceOrder(ProcessPaymentRequest processPaymentRequest) { //....
当我尝试编译此代码时,出现错误:
Type 'Nop.Services.Orders.OrderProcessingService' already defines a member called 'PlaceOrder' with the same parameter types
但我使用的是override
和原始类中的方法是virtual
,有人可以告诉我我在哪里出错了,以及我如何覆盖此方法?
'override'和'virtual'是为了继承,'partial'类不被认为是继承。 – Matthew
是否有一些其他方式来覆盖该方法?我认为nopCommerce在所有地方都使用部分类的原因是,可以在不改变源代码的情况下进行扩展 – DevDave
通常,“partial”类与自动生成的代码结合使用。为了'覆盖'PlaceOrder方法,你需要创建一个继承'OrderProcessingService'的类。 – Matthew