Avatar billede repsak Nybegynder
08. november 2004 - 15:50 Der er 4 kommentarer og
1 løsning

Compile error

Jeg kan ikke løse compiler-fejlen som denne kode genererer. Det er noget kode hentet fra nettet.

using System;
using System.Reflection;
using System.Security.Permissions;
using System.Security;

namespace A


    class Test{
        [A.XPermission(SecurityAction.Deny)]
        public void Metode(){
            Console.WriteLine("Kald");
            Console.ReadLine();
        }

        public static void Main()
        {
            new Test().Metode();
        }
    }
 
    [AttributeUsage(System.AttributeTargets.Method)] 
      [Serializable] 
      public sealed class XPermissionAttribute :  CodeAccessSecurityAttribute{ 
 
        public XPermissionAttribute (SecurityAction action) : base(action) { 
            Console.WriteLine("Constructing attr");   
        } 
 
        public override IPermission CreatePermission(){   
            Console.WriteLine("Creating new XPermission"); 
              return new XPermission();   
        } 
    } 
 
    [Serializable]   
    public sealed class XPermission : CodeAccessPermission{ 
 
        public XPermission(){ 
            Console.WriteLine("Constructing XPermission"); 
        } 
 
        public override IPermission Copy(){ 
              return new XPermission(); 
          } 
 
        public override void FromXml(SecurityElement elem){ 
              Console.WriteLine(elem); 
          } 
 
        public override SecurityElement ToXml(){ 
              SecurityElement elem = new SecurityElement 
                  ("IPermission"); 
              string name = typeof(XPermission).AssemblyQualifiedName; 
              elem.AddAttribute("class", name); 
              elem.AddAttribute("version", "1"); 
              return elem; 
          } 
 
        public override IPermission Intersect(IPermission permission) { 
              if (permission == null) { 
                  return null; 
              } 
              if (permission is XPermission) { 
                  return Copy(); 
              } 
              return null; 
          } 
 
        public override IPermission Union(IPermission permission) { 
              if (permission == null){ 
                  return null; 
              } 
              if (permission is XPermission){ 
                  return Copy(); 
              } 
              return null; 
          } 
 
        public override bool IsSubsetOf(IPermission permission){ 
              if (permission is XPermission){ 
                  return true; 
              } 
              return false; 
        } 
      } 
}
Avatar billede arne_v Ekspert
08. november 2004 - 15:53 #1
Hvilken fejl får du ?

(ja jeg er doven og gider ikke prøve selv)
Avatar billede arne_v Ekspert
08. november 2004 - 16:10 #2
Nå jeg prøvede alligevel.

Jeg læser fejlen som at koden undtagen class Test skal i A.dll mens
class Test skal i Test.exe.
Avatar billede repsak Nybegynder
08. november 2004 - 17:28 #3
ok. Det giver istedet denne fejl:

Constructing attr
Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.

Test.cs(8,9): error CS0647: Error emitting 'A.XPermissionAttribute' attribute -- 'Unexpected exception processing attribute -- System.Security.SecurityException: Request for the permission of type System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.

        The state of the failed permission was:

        IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

                    version="1"

                    Flags="ControlEvidence, Cont'

Tool completed with exit code 1
Avatar billede arne_v Ekspert
08. november 2004 - 21:11 #4
pas
Avatar billede repsak Nybegynder
25. januar 2005 - 10:39 #5
fandt aldrig ud af det... ;-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester