Ich ignoriere die, äh, unkonventionelle Bezeichnung "Nebenklasse" und "Hauptklasse" und fasse mal zusammen:
du hast drei voneinander unabhängige Klassen, die jeweils etwas mit einem Objekt des Typs "Bus" machen. Außerdem hast du noch eine Kontextklasse, die diese drei Klassen orchestriert (i.e. aufruft und die Reihenfolge der Aufrufe und damit das Ergebnis bestimmt).
Der Kontext braucht also Referenzen auf jede der benutzten Klassen. Soweit alles richtig bei dir.
Allerdings müssen die drei benutzten Klassen auch die Klasse "Bus" kennen. Die definierst du allerdings im Kontext, von dem die DLL_* nix wissen.
Nebenbei bemerkt, ist die Nutzung von "ref" in dem Kontext schlicht falsch, und auch die Benutzung von statischen Methoden willst du dir lieber abgewöhnen.
Also lieber so:
C#-Code: |
namespace Abstractions
{
public class Bus
{
public string Name { get; set; }
}
}
namespace DLL_A
{
using Abstractions;
public class Writer
{
Write(Bus bus) { bus.Name = "Wert1"; }
}
}
namespace DLL_B
{
using Abstractions;
public class ReadWriter
{
ReadWrite(Bus bus) { Console.WriteLine(bus.Name); bus.Name = "Wert2"; }
}
}
namespace DLL_C
{
using Abstractions;
public class Reader
{
Read(Bus bus) { Console.WriteLine(bus.Name); }
}
}
namespace Hauptprogramm
{
using Abstractions;
using DLL_A;
using DLL_B;
using DLL_C;
public class Context
{
public static void Main()
{
Writer writer = new Writer();
ReadWriter readWriter = new ReadWriter();
Reader reader = new Reader();
Bus myBus = new Bus();
writer.Write(bus);
readWriter.ReadWrite(bus);
reader.Read(bus);
}
}
}
|
Wobei mir generell nicht einleuchtet, wieso die Klassen alle in unterschiedlichen Namespaces sein müssen. Ich gehe aber mal davon aus, dass du dir dabei was gedacht hast.
LaTino