다음을 통해 공유


ReflectionPermission.Copy 메서드

현재 사용 권한의 동일한 복사본을 만들어 반환합니다.

네임스페이스: System.Security.Permissions
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Overrides Function Copy As IPermission
‘사용 방법
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

반환 값

현재 사용 권한의 복사본입니다.

설명

사용 권한의 복사본은 리소스에 대해 원래 사용 권한과 동일한 액세스 권한을 나타냅니다.

예제

    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   

플랫폼

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에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

ReflectionPermission 클래스
ReflectionPermission 멤버
System.Security.Permissions 네임스페이스