Witam, problem opiszę na takim oto prostym przykładzie:
class Person
{
public Car CarOwned { get; private set; }
public void AddCar(Car car)
{
this.CarOwned = car;
}
}
class Car
{
public Person OwnedBy { get; private set; }
public void ChangeOwner(Person owner)
{
this.OwnedBy = owner;
}
}
Chodzi o to, żeby metody AddCar i ChangeOwner zawsze były wykonywane razem (bez zapętlenia), tak by uniknąć sytuacji, że we właściwości CarOwned obiektu person1 był ustawiony car1, a we właściwości OwnedBy obiektu car1 była ustawiona inna wartość niż person1. Właściwości muszą pozostać jako readonly z zewnątrz (z tego samego powodu - aby uniknąć zerwania relacji).
Z góry dziękuję za pomoc :)