Überschreiben Sie eine virtuelle Methode in einer Teilklasse

Ich arbeite derzeit mit dernopCommerce Quellcode und versuchen mein Bestes, um zu vermeiden, die Quelle überhaupt zu bearbeiten, aber stattdessen Teilklassen und Plugins zu verwenden, die vom Quellcode getrennt sind, sollten wir jemals Versionen aktualisieren müssen.

Ich möchte einige Änderungen am Code vornehmen, der eine Bestellung aufgibt, indem ich eine Teilklasse in derselben Assembly verwende:

Ursprünglicher Quellcode:

namespace Nop.Services.Orders {

  public partial class OrderProcessingService : IOrderProcessingService {

        public virtual PlaceOrderResult PlaceOrder(ProcessPaymentRequest processPaymentRequest)
        { //....

Meine Teilklasse:

namespace Nop.Services.Orders {

  public partial class OrderProcessingService : IOrderProcessingService {

    public override PlaceOrderResult PlaceOrder(ProcessPaymentRequest processPaymentRequest) { //....

Wenn ich versuche, diesen Code zu kompilieren, erhalte ich eine Fehlermeldung:

Der Typ 'Nop.Services.Orders.OrderProcessingService' definiert bereits ein Element namens 'PlaceOrder' mit denselben Parametertypen

Aber ich benutzeoverride und die Methode in der ursprünglichen Klasse istvirtual, könnte mir jemand sagen, wo ich hier falsch liege und wie ich diese Methode außer Kraft setzen könnte?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage