4
我們可以使用反射來獲取或設置C#類中任何private
成員的值。 (使用BindingFlags.NonPublic
等)我們的C#類成員是多少(私人)?
如果是這樣的話,private
會員怎麼會真的是私人的?我們怎樣才能確定,故意存儲在private
字段中的內容在真正意義上是保密的?
我們可以使用反射來獲取或設置C#類中任何private
成員的值。 (使用BindingFlags.NonPublic
等)我們的C#類成員是多少(私人)?
如果是這樣的話,private
會員怎麼會真的是私人的?我們怎樣才能確定,故意存儲在private
字段中的內容在真正意義上是保密的?
你不能。訪問修飾符用於爲面向對象編程提供封裝,而不是用於運行時安全。
如果您需要安全性,則需要使用更高級別的功能。
你真的無法避免這一點 - 反射是一個後門進入你的類的實現。 – StuartLC
實際上,你不能;製作一個實現'private'' internal'等是關於在設計中指定意圖以及如何使用組件。 –
這個問題被問了很多次。這一個有很好的答案:http://stackoverflow.com/q/2084353/694852。而這一個havily upvoted:http://stackoverflow.com/q/16942114/694852。 – Artemix