Ich habe eine (schlecht geschriebene) Basisklasse, die ich in ein Proxy-Objekt einbinden möchte. Die Basisklasse ähnelt dem folgenden:Wie kann ich verhindern, dass ein Basiskonstruktor von einem Erben in C# aufgerufen wird?
public class BaseClass : SomeOtherBase
{
public BaseClass() {}
public BaseClass(int someValue) {}
//...more code, not important here
}
und mein Proxy ähnelt:
public BaseClassProxy : BaseClass
{
public BaseClassProxy(bool fakeOut){}
}
Ohne die „Fakeout“ Konstruktor wird der Basiskonstruktor erwartet aufgerufen werden. Allerdings habe ich damit gerechnet, dass es nicht angerufen wird. So oder so, ich brauche entweder eine Möglichkeit, keine Basisklassenkonstruktoren aufzurufen, oder eine andere Möglichkeit, diese (böse) Klasse effektiv zu vertreten.
Eigentlich, wenn Sie meinen Kommentar unten lesen, gibt es einen Weg, obwohl ich es in den meisten Fällen nicht empfehlen würde. –
Diese Antwort ist einfach falsch. Vor allem im Lichte der anderen Antwort. – Kobor42