3 using System.Security.Permissions;
5 [assembly: SecurityPermission (SecurityAction.RequestMinimum, Execution=true)]
6 [assembly: SecurityPermission (SecurityAction.RequestOptional, Unrestricted=true)]
7 [assembly: SecurityPermission (SecurityAction.RequestRefuse, SkipVerification=true)]
9 [SecurityPermission (SecurityAction.LinkDemand, ControlPrincipal=true)]
10 struct LinkDemandStruct {
14 [SecurityPermission (SecurityAction.Demand, ControlAppDomain=true)]
15 public class Program {
17 private static string _message = "Hello Mono!";
18 private LinkDemandStruct info;
20 [SecurityPermission (SecurityAction.InheritanceDemand, ControlAppDomain=true)]
22 info = new LinkDemandStruct ();
26 public static string Message {
27 [SecurityPermission (SecurityAction.PermitOnly, ControlEvidence=true)]
28 get { return _message; }
29 [SecurityPermission (SecurityAction.Assert, ControlThread=true)]
30 set { _message = value; }
33 [SecurityPermission (SecurityAction.Deny, UnmanagedCode=true)]
34 private bool DenyMethod () {
38 [SecurityPermission (SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlEvidence, UnmanagedCode=true)]
39 [SecurityPermission (SecurityAction.Demand, Flags = SecurityPermissionFlag.AllFlags, UnmanagedCode=true)]
40 static public int Main (string[] args)
42 Type program = typeof (Program);
43 if (program.GetCustomAttributes (true).Length != 0)
46 if (program.GetConstructor (System.Type.EmptyTypes).GetCustomAttributes (true).Length != 0)
49 if (program.GetProperty ("Message").GetSetMethod ().GetCustomAttributes (true).Length != 0)
52 if (program.GetMethod ("Main").GetCustomAttributes (true).Length != 0)
55 Console.WriteLine (Message);