MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) メソッド

定義

このメソッドに宣言セキュリティを追加します。

public:
 void AddDeclarativeSecurity(System::Security::Permissions::SecurityAction action, System::Security::PermissionSet ^ pset);
public void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset);
member this.AddDeclarativeSecurity : System.Security.Permissions.SecurityAction * System.Security.PermissionSet -> unit
Public Sub AddDeclarativeSecurity (action As SecurityAction, pset As PermissionSet)

パラメーター

action
SecurityAction

(Demand、Assert などの) 実行されるセキュリティ アクション。

pset
PermissionSet

アクションが適用されるアクセス許可のセット。

例外

action が正しくありません (RequestMinimumRequestOptionalRequestRefuse が正しくない)。

含んでいる型は CreateType() を使用して作成されています。

psetnullです。

次のコード サンプルは、 のコンテキストを使用して、メソッドの呼び出し元に無制限のアクセス許可を要求 AddDeclarativeSecurity する方法を示しています。

// myModBuilder is an instance of ModuleBuilder.
// Note that for the use of PermissionSet and SecurityAction,
// the namespaces System::Security and System::Security::Permissions
// should be included.

TypeBuilder^ myTypeBuilder = myModBuilder->DefineType( "MyType",
                             TypeAttributes::Public );

array<Type^>^ temp0 = {int::typeid, int::typeid};
MethodBuilder^ myMethod1 = myTypeBuilder->DefineMethod( "MyMethod",
                           MethodAttributes::Public,
                           int::typeid, temp0 );

PermissionSet^ myMethodPermissions = gcnew PermissionSet(
                                     PermissionState::Unrestricted );

myMethod1->AddDeclarativeSecurity( SecurityAction::Demand,
                                   myMethodPermissions );
// myModBuilder is an instance of ModuleBuilder.
// Note that for the use of PermissionSet and SecurityAction,
// the namespaces System.Security and System.Security.Permissions
// should be included.

TypeBuilder myTypeBuilder = myModBuilder.DefineType("MyType",
                    TypeAttributes.Public);

MethodBuilder myMethod1 = myTypeBuilder.DefineMethod("MyMethod",
                    MethodAttributes.Public,
                    typeof(int),
                    new Type[]
                    {typeof(int), typeof(int)});	

PermissionSet myMethodPermissions = new PermissionSet(
            PermissionState.Unrestricted);

myMethod1.AddDeclarativeSecurity(SecurityAction.Demand,
                 myMethodPermissions);
' myModBuilder is an instance of ModuleBuilder.
' Note that for the use of PermissionSet and SecurityAction,
' the namespaces System.Security and System.Security.Permissions
' should be included.
Dim myTypeBuilder As TypeBuilder = myModBuilder.DefineType("MyType", _
                        TypeAttributes.Public)

Dim myMethod1 As MethodBuilder = myTypeBuilder.DefineMethod("MyMethod", _
                       MethodAttributes.Public, _
                       GetType(Integer), _
                       New Type() {GetType(Integer), GetType(Integer)})

Dim myMethodPermissions As New PermissionSet(PermissionState.Unrestricted)

myMethod1.AddDeclarativeSecurity(SecurityAction.Demand, myMethodPermissions)

注釈

AddDeclarativeSecurity は数回呼び出され、各呼び出しでセキュリティ アクション (、 など) と、アクションが適用される一連のアクセス許可 Demand Assert Deny を指定できます。

注意

.NET Framework バージョン 1.0、1.1、および 2.0 では、 メソッドを使用してメソッドに適用される宣言セキュリティ属性は、古い XML メタデータ形式で格納されます AddDeclarativeSecurity 。 「宣言型セキュリティ属性の出力」を参照してください。

適用対象