Хотелось бы такого — чтобы можно было передать в чужой код ссылку на объект, и любая попытка его изменения приводила бы к исключению. Точнее, там не один объект, а сложная система из объектов с перекрестными ссылками. То есть нужно, чтобы блокировались вызовы методов, которые изменяют состояние.
Насколько я понимаю, в CLI вполне возможно добиться такого, с помощью перехвата вызовов например.
Где-нибудь есть готовые реализации?