我實現這個功能:GetSystemPowerStatusEx & GetSystemPowerStatusEx2如何知道本地方法是安全/不安全的?
根據這篇文章MSDN,我應該創建一個根據我將使用功能命名的類,但我的問題是:我怎麼能知道在哪個班,我應該把GetSystemPowerStatusEx & GetSystemPowerStatusEx2?
我迷路了...
感謝您的幫助。
[編輯]我的問題是:這三個類名中的哪一個對我來說是好的(NativeMethods/SafeNativeMethods/UnsafeNativeMethods)?
這些方法應該是以下的一類:
NativeMethods - 此類不 抑制疊公益金非託管代碼 許可。 (System.Security.SuppressUnmanagedCodeSecurityAttribute 不得應用於此類。) 此類適用於可在任何地方使用的方法,因爲將執行堆棧行走 。
SafeNativeMethods - 此類 禁止非託管 代碼權限的堆棧散步。 (System.Security.SuppressUnmanagedCodeSecurityAttribute 應用於此類。)此類 適用於任何人都可以安全調用的方法。這些 方法的調用者不需要執行完整的安全審查,以確保 的使用是安全的,因爲 方法對於任何調用者都是無害的。
UnsafeNativeMethods - 此類 禁止非託管 代碼權限的堆棧散步。 (System.Security.SuppressUnmanagedCodeSecurityAttribute 應用於此類。)此類 適用於可能有 危險的方法。任何這些方法的調用者 必須執行完整的安全審查 請確保使用是安全的 因爲沒有堆棧散步將 執行。
它們也可以放在非靜態類中。 – 2010-12-22 16:48:07
當然,它們可以放在任何地方。我所看到的標準方法是靜態的,但我想真正的答案是,沒關係。 – 2010-12-22 16:49:51
我同意,我也總是爲他們寫封裝函數。以便我可以在需要時輕鬆替換或修改它們。 – Bobby 2010-12-22 16:57:06