Überschreiben einer virtuellen Methode in einer partiellen Klasse

Ich bin derzeit mit dem nopCommerce source code und versuche mein bestes um zu vermeiden, Bearbeiten Sie die Quelle, sondern mit partiellen Klassen und plugins, die getrennt von der source-code, sollten wir jemals brauchen werden, um upgrade-Versionen.

Möchte ich einige änderungen vornehmen, um den code, der eine Bestellung aufgibt, durch die Verwendung einer partiellen Klasse in der gleichen assembly:

Orignal Quellcode:

namespace Nop.Services.Orders {

  public partial class OrderProcessingService : IOrderProcessingService {

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

Meine partielle Klasse:

namespace Nop.Services.Orders {

  public partial class OrderProcessingService : IOrderProcessingService {

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

Wenn ich versuche, um diesen code zu kompilieren bekomme ich eine Fehlermeldung:

Typ 'Nop.Services.Aufträge.OrderProcessingService' ist bereits definiert
Mitglied namens "PlaceOrder' mit den gleichen Parametertypen

Aber ich bin mit override - und der Methode in der ursprünglichen Klasse virtual, könnte mir jemand sagen, wo ich bin läuft hier falsch und wie könnte ich diese Methode überschreiben?

override und virtual ist für die Vererbung, partial Klassen sind nicht als Erbe.
gibt es eine andere Möglichkeit zum überschreiben der Methode? Ich glaube, der Grund nopCommerce mit der partiellen Klassen ist überall so, dass Erweiterungen können vorgenommen werden, ohne den Quellcode zu ändern
In der Regel partial Klassen werden in Verbindung mit dem automatisch generierten code. Um override die Methode PlaceOrder erstellen Sie eine Klasse, die erbt OrderProcessingService.

InformationsquelleAutor DevDave | 2013-06-21

Schreibe einen Kommentar