Частично от любопытной точки зрения и отчасти от защиты от потенциальных проблем. Представьте себе, что самое худшее, что может случиться, вызвав следующее (или что-то подобное, но 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)?