CodeAccessPermission.IsSubsetOf メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As CodeAccessPermission Dim target As IPermission Dim returnValue As Boolean returnValue = instance.IsSubsetOf(target)
戻り値
現在のアクセス許可が、指定したアクセス許可のサブセットである場合は true。それ以外の場合は false。


現在のアクセス許可で指定される操作の集合が、指定したアクセス許可に完全に含まれる場合、現在のアクセス許可オブジェクトは指定したアクセス許可オブジェクトのサブセットです。たとえば、C:\example.txt へのアクセス権を表すアクセス許可は、C:\ へのアクセス権を表すアクセス許可のサブセットです。このメソッドが true を返す場合、現在のアクセス許可が保護されたリソースに対して表すアクセス権は、指定したアクセス許可が表すアクセス権と同じか、またはそのサブセットです
IsSubsetOf メソッドのすべてのオーバーライドで、次に示すステートメントが true である必要があります。X、Y、および Z は、null 参照以外のカスタム コードのアクセス許可オブジェクトを表します。U は無制限コード アクセス許可を表します。また、N は、PermissionState が None に設定された空のアクセス許可を表します。
-
X と Y が同じアクセス許可のセットを表している場合に限り、X .IsSubsetOf( Y ) は、Y .IsSubsetOf( X ) と同じ値を返します。
-
X .IsSubsetOf( Y ) と Y .IsSubsetOf( Z ) がどちらも true を返す場合、X .IsSubsetOf( Z ) は、true を返します。
X および Y が null 参照であるカスタム コード アクセス許可オブジェクトを表す場合、X.IsSubsetOf(Y) は true を返します。Z も null である場合、複合セット操作 X.Union(Y).IsSubsetOf(Z) も true を返します。2 つの null アクセス許可の結合は、null アクセス許可であるためです。
継承時の注意 派生クラスでこのメソッドをオーバーライドする必要があります。
IsSubsetOf メソッドをオーバーライドする方法を次のコード例に示します。このコード例は、CodeAccessPermission クラスのトピックで取り上げているコード例の一部分です。
Public Overrides Function IsSubsetOf(ByVal target As IPermission) As Boolean #If (Debug) Then Console.WriteLine("************* Entering IsSubsetOf *********************") #End If If target Is Nothing Then Console.WriteLine("IsSubsetOf: target == null") Return False End If #If (Debug) Then Console.WriteLine(("This is = " + CType(Me, NameIdPermission).Name)) Console.WriteLine(("Target is " + CType(target, NameIdPermission).m_name)) #End If Try Dim operand As NameIdPermission = CType(target, NameIdPermission) ' The following check for unrestricted permission is only included as an example for ' permissions that allow the unrestricted state. It is of no value for this permission. If True = operand.m_Unrestricted Then Return True ElseIf True = Me.m_Unrestricted Then Return False End If If Not (Me.m_name Is Nothing) Then If operand.m_name Is Nothing Then Return False End If If Me.m_name = "" Then Return True End If End If If Me.m_name.Equals(operand.m_name) Then Return True Else ' Check for wild card character '*'. Dim i As Integer = operand.m_name.LastIndexOf("*") If i > 0 Then Dim prefix As String = operand.m_name.Substring(0, i) If Me.m_name.StartsWith(prefix) Then Return True End If End If End If Return False Catch Throw New ArgumentException(String.Format("Argument_WrongType", Me.GetType().FullName)) End Try End Function 'IsSubsetOf
public override bool IsSubsetOf(IPermission target) { #if(debug) Console.WriteLine ("************* Entering IsSubsetOf *********************"); #endif if (target == null) { Console.WriteLine ("IsSubsetOf: target == null"); return false; } #if(debug) Console.WriteLine ("This is = " + (( NameIdPermission)this).Name); Console.WriteLine ("Target is " + (( NameIdPermission)target).m_Name); #endif try { NameIdPermission operand = ( NameIdPermission)target; // The following check for unrestricted permission is only included as an example for // permissions that allow the unrestricted state. It is of no value for this permission. if (true == operand.m_Unrestricted) { return true; } else if (true == this.m_Unrestricted) { return false; } if (this.m_Name != null) { if (operand.m_Name == null) return false; if (this.m_Name == "") return true; } if (this.m_Name.Equals (operand.m_Name)) return true; else { // Check for wild card character '*'. int i = operand.m_Name.LastIndexOf ("*"); if (i > 0) { string prefix = operand.m_Name.Substring (0, i); if (this.m_Name.StartsWith (prefix)) { return true; } } } return false; } catch (InvalidCastException) { throw new ArgumentException (String.Format ("Argument_WrongType", this.GetType ().FullName)); } }
public: virtual bool IsSubsetOf( IPermission^ target ) override { #if ( debug ) Console::WriteLine( "************* Entering IsSubsetOf *********************" ); #endif if ( target == nullptr ) { Console::WriteLine( "IsSubsetOf: target == null" ); return false; } #if ( debug ) Console::WriteLine( "This is = {0}", ((NameIdPermission)this).Name ); Console::WriteLine( "Target is {0}", ((NameIdPermission)target).m_Name ); #endif try { NameIdPermission^ operand = dynamic_cast<NameIdPermission^>(target); // The following check for unrestricted permission is only included as an example for // permissions that allow the unrestricted state. It is of no value for this permission. if ( true == operand->m_Unrestricted ) { return true; } else if ( true == this->m_Unrestricted ) { return false; } if ( this->m_Name != nullptr ) { if ( operand->m_Name == nullptr ) { return false; } if ( this->m_Name->Equals( "" ) ) { return true; } } if ( this->m_Name->Equals( operand->m_Name ) ) { return true; } else { // Check for wild card character '*'. int i = operand->m_Name->LastIndexOf( "*" ); if ( i > 0 ) { String^ prefix = operand->m_Name->Substring( 0, i ); if ( this->m_Name->StartsWith( prefix ) ) { return true; } } } return false; } catch ( InvalidCastException^ ) { throw gcnew ArgumentException( String::Format( "Argument_WrongType", this->GetType()->FullName ) ); } }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からCodeAccessPermission.IsSubsetOf メソッドを検索する場合は、下記のリンクをクリックしてください。

- CodeAccessPermission.IsSubsetOf メソッドのページへのリンク