ReflectionPermission 類別

定義

透過 API 控制對非公開類型與成員 System.Reflection 的存取。 控制部分 API 的功能 System.Reflection.Emit

public ref class ReflectionPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Serializable]
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Serializable>]
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ReflectionPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class ReflectionPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
繼承
ReflectionPermission
屬性
實作

備註

注意事項

.NET Framework 和 .NET 的所有版本中,代碼存取安全性(CAS)已被棄用。 最新版本的 .NET 不會接受 CAS 註釋,如果使用 CAS 相關 API,則會產生錯誤。 開發人員應尋求其他方法來完成安全任務。

沒有 ReflectionPermission,程式碼只能利用反射存取物件的公開成員。 帶有 ReflectionPermission 適當 ReflectionPermissionFlag 旗標的程式碼可以存取 protected 物件的 和 private 成員。

注意事項

由於 ReflectionPermission 這些網站能提供私人類型和會員的存取,我們建議你不要授權 ReflectionPermission 網路程式碼,除非有 ReflectionPermissionFlag.RestrictedMemberAccess 旗幟。 RestrictedMemberAccess 允許存取非公開成員,但限制為非公開成員的授權集必須等於或其子集,該程式碼存取非公開成員的授權集。

反射發射的某些功能,例如發射除錯符號,則需要 ReflectionPermission 與旗標相符 ReflectionPermissionFlag.ReflectionEmit

如需詳細資訊,請參閱 ReflectionPermissionFlag 列舉。

建構函式

名稱 Description
ReflectionPermission(PermissionState)

以完全受限或非受限權限初始化該類別的新 ReflectionPermission 實例。

ReflectionPermission(ReflectionPermissionFlag)

初始化一個以指定存取權的新類別實例 ReflectionPermission

屬性

名稱 Description
Flags

取得或設定目前權限允許的反射類型。

方法

名稱 Description
Assert()

宣告呼叫程式碼可透過呼叫此方法的程式碼存取受權限要求保護的資源,即使堆疊中較高的呼叫者尚未獲得存取該資源的權限。 使用 Assert() 可能會造成安全問題。

(繼承來源 CodeAccessPermission)
Copy()

建立並回傳與目前權限相同的副本。

Demand()

若呼叫堆疊中所有較高的呼叫者尚未獲得當前實例指定的權限,則在執行時強制執行 a SecurityException

(繼承來源 CodeAccessPermission)
Deny()
已淘汰.

防止呼叫堆疊中較高的呼叫者使用呼叫此方法的程式碼來存取目前實例指定的資源。

(繼承來源 CodeAccessPermission)
Equals(Object)

判斷指定的 CodeAccessPermission 物件是否等於當前 CodeAccessPermission的 。

(繼承來源 CodeAccessPermission)
FromXml(SecurityElement)

從 XML 編碼中重建具有指定狀態的權限。

GetHashCode()

取得適合用於雜湊演算法及資料結構(如雜湊表)的物件雜湊碼 CodeAccessPermission

(繼承來源 CodeAccessPermission)
GetType()

取得目前實例的 Type

(繼承來源 Object)
Intersect(IPermission)

建立並回傳一個權限,該權限是目前權限與指定權限的交集。

IsSubsetOf(IPermission)

判斷目前權限是否屬於指定權限的子集。

IsUnrestricted()

回傳一個值,表示目前權限是否為無限制。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
PermitOnly()

防止呼叫堆疊中較高的呼叫者使用呼叫此方法的程式碼存取除當前實例指定的資源外的所有資源。

(繼承來源 CodeAccessPermission)
ToString()

建立並回傳當前權限物件的字串表示。

(繼承來源 CodeAccessPermission)
ToXml()

建立權限及其當前狀態的 XML 編碼。

Union(IPermission)

建立一個權限,結合目前權限與指定權限。

適用於

另請參閱