Freigeben über


ReflectionPermission.Copy-Methode

Erstellt eine identische Kopie der aktuellen Berechtigung und gibt die Kopie zurück.

Namespace: System.Security.Permissions
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Function Copy As IPermission
'Usage
Dim instance As ReflectionPermission
Dim returnValue As IPermission

returnValue = instance.Copy
public override IPermission Copy ()
public:
virtual IPermission^ Copy () override
public IPermission Copy ()
public override function Copy () : IPermission

Rückgabewert

Eine Kopie der aktuellen Berechtigung.

Hinweise

Eine Kopie einer Berechtigung stellt denselben Ressourcenzugriff dar wie die ursprüngliche Berechtigung.

Beispiel

    Private Function CopyDemo() As Boolean

        Dim returnValue As Boolean = True

        Dim reflection1 As ReflectionPermissionFlag
        Dim reflectionPerm1, reflectionPerm2 As ReflectionPermission

        Dim reflectionGen1 As New ReflectionGenerator()
        Dim reflectionGen2 As New ReflectionGenerator()

        reflectionGen1.ResetIndex()
        While reflectionGen1.CreateReflection(reflection1)
            reflectionPerm1 = New ReflectionPermission(reflection1)
            reflectionGen2.ResetIndex()
            Console.WriteLine("********************************************************" & ControlChars.Lf)
            Try
                reflectionPerm2 = CType(reflectionPerm1.Copy(), ReflectionPermission)
                Console.WriteLine(("Result of copy = " & reflectionPerm2.ToString()))

            Catch e As Exception
                Console.WriteLine(("Copy failed :" & reflectionPerm1.ToString() & e.ToString()))

            End Try
ContinueWhile1:
        End While
        Return returnValue
    End Function 'CopyDemo
private bool CopyDemo()
{

    bool returnValue = true;

    ReflectionPermissionFlag reflection1;
    ReflectionPermission reflectionPerm1, reflectionPerm2;

    ReflectionGenerator reflectionGen1 = new ReflectionGenerator();
    ReflectionGenerator reflectionGen2 = new ReflectionGenerator();

    reflectionGen1.ResetIndex();
    while (reflectionGen1.CreateReflection(out reflection1))
    {
        reflectionPerm1 = new ReflectionPermission(reflection1);
        reflectionGen2.ResetIndex();
        Console.WriteLine("********************************************************\n");
        try
        {
            reflectionPerm2 = (ReflectionPermission)reflectionPerm1.Copy();
            Console.WriteLine("Result of copy = " + reflectionPerm2.ToString());

        }
        catch (Exception e)
        {
            Console.WriteLine("Copy failed :" + reflectionPerm1.ToString() + e);
            continue;
        }
    }
    return returnValue;
}
bool CopyDemo()
{
   bool returnValue = true;
   ReflectionPermissionFlag reflection1;
   ReflectionPermission^ reflectionPerm1;
   ReflectionPermission^ reflectionPerm2;
   ReflectionGenerator^ reflectionGen1 = gcnew ReflectionGenerator;
   ReflectionGenerator^ reflectionGen2 = gcnew ReflectionGenerator;
   reflectionGen1->ResetIndex();
   while ( reflectionGen1->CreateReflection(  &reflection1 ) )
   {
      reflectionPerm1 = gcnew ReflectionPermission( reflection1 );
      reflectionGen2->ResetIndex();
      Console::WriteLine( "********************************************************\n" );
      try
      {
         reflectionPerm2 = dynamic_cast<ReflectionPermission^>(reflectionPerm1->Copy());
         Console::WriteLine( "Result of copy = {0}", reflectionPerm2 );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Copy failed : {0}{1}", reflectionPerm1, e );
         continue;
      }

   }

   return returnValue;
}
private boolean CopyDemo() 
{
    boolean returnValue = true;
    ReflectionPermissionFlag reflection1[] = 
        new ReflectionPermissionFlag[1];
    ReflectionPermission reflectionPerm1[] = 
        new ReflectionPermission[1];
    ReflectionPermission reflectionPerm2[] = 
        new ReflectionPermission[1];
    ReflectionGenerator reflectionGen1 =  
        new ReflectionGenerator();
    ReflectionGenerator reflectionGen2 =  
        new ReflectionGenerator();
    reflectionGen1.ResetIndex();
    
    while(reflectionGen1.CreateReflection(reflectionPerm1, reflection1)) {
        if (reflectionPerm1[0] == null) {
            continue ;
        }
        reflectionGen2.ResetIndex();
        Console.WriteLine("*********************************" 
            + "***********************\n");
        try {
        reflectionPerm2[0] =((ReflectionPermission)(
        reflectionPerm1[0].Copy()));
        Console.WriteLine(("Result of copy = " 
            + reflectionPerm2[0].ToString()));
        } 
        catch(System.Exception  e){
            Console.WriteLine(("Copy failed :" 
                + reflectionPerm1[0].ToString() + e));
            continue ;
        }
    }
    return returnValue ;
} //CopyDemo   

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ReflectionPermission-Klasse
ReflectionPermission-Member
System.Security.Permissions-Namespace