2 // System.Security.NamedPermissionSet
5 // Dan Lewis (dihlewis@yahoo.co.uk)
6 // Sebastien Pouliot (spouliot@motus.com)
9 // Portions (C) 2003, 2004 Motus Technologies Inc. (http://www.motus.com)
13 using System.Security.Permissions;
15 namespace System.Security {
18 public sealed class NamedPermissionSet : PermissionSet {
20 // for PolicyLevel (to avoid validation duplication)
21 internal NamedPermissionSet () : base () {}
23 public NamedPermissionSet (string name, PermissionSet set) : base (set)
28 public NamedPermissionSet (string name, PermissionState state) : base (state)
33 public NamedPermissionSet (NamedPermissionSet set) : this (set.name, set) {}
35 public NamedPermissionSet (string name) : this (name, PermissionState.None) {}
39 public string Description {
40 get { return description; }
41 set { description = value; }
47 if ((value == null) || (value == String.Empty))
48 throw new ArgumentException ("invalid name");
53 public override PermissionSet Copy ()
55 return new NamedPermissionSet (this);
58 public NamedPermissionSet Copy (string name)
60 NamedPermissionSet nps = new NamedPermissionSet (this);
65 public override void FromXml (SecurityElement e)
67 FromXml (e, "NamedPermissionSet");
68 Name = (e.Attributes ["Name"] as string);
69 description = (e.Attributes ["Description"] as string);
70 if (description == null)
71 description = String.Empty;
74 public override SecurityElement ToXml ()
76 SecurityElement se = base.ToXml ();
78 se.AddAttribute ("Name", name);
79 if (description != null)
80 se.AddAttribute ("Description", description);
87 private string description;