That is indeed the intent - to prevent breaking encapsulation. Of course, the determined programmer can basically always get around this, via reflection or simply modifying the source, given access. All you've really done is make it a pain in his ass to circumnavigate your directive on...