SharePoint 2010, отражение с использованием C # - PullRequest
1 голос
/ 11 марта 2011

Как объяснено в этой теме Найти приватное поле с помощью Reflection? ражение можно использовать для установки приватного поля, и я успешно это сделал в MOSS 2007, который использует asp.net 2.0. Я задаюсь вопросом, не сломается ли мой код в SharePoint 2010, и я полагаю, сводится ли это к тому, разрешит ли это вспомогательная версия asp.net, то есть asp.net 3.5.

Подводя итог Позволяет ли asp.net 3.5 устанавливать закрытые переменные-члены суперкласса с использованием отражения от наследующего класса?

Есть комментарии?

1 Ответ

5 голосов
/ 11 марта 2011

Да, это так (*), если есть достаточное доверие, но это меньше всего твоих забот.Есть причина, почему это поле является частным.Это деталь реализации, о которой вы не должны беспокоиться / mangle, и private также документирует «мы можем удалить / переименовать или сделать то, что мы чувствуем с этим полем, не беспокоясь, если оно сломает ваш код»

Вместо того, чтобы держать пальцы скрещенными и надеяться, что в этот раз это не сломается, поверьте, что какое-то будущее обновление будет и расскажет о соответствующих действиях.То есть переписать ваш код так, чтобы он не имел доступа к закрытым членам

(*). CLR одинаков для 2.0 и 3.5.

...