So überschreiben Sie eine partielle Klasseneigenschaft

7

Ich habe eine partielle Klasse und möchte Folgendes tun:

%Vor%

das obige funktioniert jedoch nicht.

Gibt es eine Möglichkeit, die Basis-Entity-Framework-Klassen zu überschreiben, um benutzerdefinierte Getter / Setter zu ermöglichen?

    
Mike Valstar 04.03.2013, 17:43
quelle

2 Antworten

21

Partielle Klassen haben nichts mit Vererbung zu tun, und override dreht sich ausschließlich um Vererbung.

Das Schlüsselwort partial für eine Klasse bedeutet nur, dass es in derselben Assembly mehrfach deklariert werden kann. Es ist genau so, als ob Sie jeden Teil von partial class in die gleiche Datei kopiert und das Schlüsselwort partial entfernt hätten. Da Sie dieselbe Eigenschaft / Funktion / etc nicht zweimal in derselben Klasse definieren können, können Sie sie nicht zweimal in zwei separaten Teilen derselben Klasse definieren, auch nicht mit dem Schlüsselwort partial .

override hingegen wird in abgeleiteten -Klassen verwendet, um anzugeben, dass sie die Funktionalität der Basisklasse ersetzen, von der sie erben. Wenn es nicht explizit erbt, erbt es von object , wodurch Sie ToString() (neben anderen) überschreiben können.

Die besten Möglichkeiten, um das zu tun, was Sie wollen, sind entweder eine benutzerdefinierte T4-Vorlage zum Generieren der Verschlüsselungs- / Entschlüsselungslogik oder das Festlegen der verschlüsselten Eigenschaften im Designer auf protected oder private und das manuelle Hinzufügen von public . Versionen, die die Entschlüsselung durchführen.

    
Bobson 04.03.2013, 18:09
quelle
1

Wenn Sie den Code-Generator ändern können, können Sie ihn einfach "emulieren" ("überschreiben" Standardwerte), indem Sie sehr leistungsfähige partielle Methoden verwenden.

Ссылка

    
Roman Pokrovskij 07.08.2015 20:34
quelle