Ich habe eine Basisklasse und mehrere abgeleitete Klassen:
Code: Select all
public class Camera
{
}
public class CameraManufacturerA : Camera
{
}
public class CameraManufacturerB : Camera
{
}
public class CameraManufacturerC : Camera
{
}
Jetzt möchte ich Funktionen hinzufügen, die die Basisfunktionalität erweitern:
Code: Select all
public class CameraFeatureA : Camera
{
public int FeatureProperty { get; set; }
public bool RunFeatureA();
}
Diese Funktionen machen nur für bestimmte untergeordnete Klassen Sinn, ich strebe etwa Folgendes an:
Code: Select all
public class MyCamera : CameraManufacturerA, CameraFeatureB, CameraFeatureD
{
}
Ich weiß, genau so wird es nicht möglich sein (aus guten Gründen). Ich habe viel Zeit damit verbracht, etwas Ähnliches zu finden, konnte aber keine Lösung finden, die dem nahe kommt. Irgendwelche Ideen?
Noch eine Info: die kombinierte Klasse (
) wird in einer Art Code-Editor verwendet, der Reflektion verwendet. Deshalb ist es wichtig, dass die Eigenschaften der untergeordneten Klassen tatsächlich Eigenschaften sind. Aber ich könnte mit einer „hackigen“ Lösung arbeiten, die Reflektion oder dynamische Klassenerstellung verwendet. Ich brauche nur die letzte kombinierte Klasse zur Laufzeit.