Hvordan undgår jeg Assert?
Hvis jeg fra mit assembly, lad os kalde det A, benytter en metode i et andet assembly, som vi kalder B, og ikke ønsker at metoden i B skal have adgang til at læse fra drev C skriver jeg selvfølgelig i A noget i stil med:CodeAccessPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"c:\");
permission.Deny();
Hvis metoden i B så forsøger noget i stil med:
CodeAccessPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"c:\fil.txt");
permission.Demand();
Vil den finde ud af, at den ikke har adgang til filen på drev C, lækkert nok :-)
Men hvis metoden i B er så fræk at kalde noget kode ala:
CodeAccessPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"c:\fil.txt");
permission.Assert();
Vil den alligevel få adgang til drev C :-(
Så spørgsmålet er nu, hvordan jeg effektivt sætter en stopper for metoden i B?
Jeg har prøvet med nogle forskellige attributter på både assembly og metodeniveau, i både A og B, men intet har hjulpet.
