#1 vesi
Co jsem tak koukal, tak v .NET to běžně nejde, nebo alespon ne snadno. To co jsi zkoušel se vyhodnocuje jenom při průběhu tou řádkou kde to je umístěno.
To co hledáš jde udělat snadno v C++ kde debuger může ohlídat přístup do určitého místa v paměti - procesory na to mají podporu ale v .Net se ale "fyzické" adresy proměných mohou měnit např díky garbage colectoru.
Nejde to použít vždy ale nejjednodušší je přejmenovat původní proměnnou a doplnit Get Set pod původním názvem. Do těch (Get,Set) pak lze umistit běžný breakpoint.
Někde, ale už nevím kde a jak, jsem četl že jde debuger přepnout do "native" režimu, kde, pokud je danné proměnná připinovaná v paměti (pinned), by pak mělo to co chceš jít použít.
V extrémním případě by pak mohlo jít použít Windbg, ale tam už ti moc poradit nedokážu.
Můžeš zkusit zagooglit C# data breakpoint, možná se ti podaří něco najít.