Частично от любопытной точки зрения и отчасти от защиты от потенциальных проблем. Представьте себе, что самое худшее, что может случиться, вызвав следующее (или что-то подобное, но string.Empty является хорошим примером):
typeof(String).GetField("Empty", 
    BindingFlags.Public | 
    BindingFlags.NonPublic | 
    BindingFlags.Static | 
    BindingFlags.GetField
).SetValue(null, "foo" );
Это вызовет проблемы, если там где-то есть код x = myClass.bar ?? string.Empty.
Есть ли способ (похожий на разные домены приложений или аналогичный) для защиты (или обнаружения) кого-то, изменяющего значения, такие как string.Empty или, возможно, SqlDateTime.MinValue (или другие подобные поля только для чтения в .NET)?

