SocketPermission.FromXml(SecurityElement) Method

Definition

Reconstructs a SocketPermission instance for an XML encoding.

C#
public override void FromXml(System.Security.SecurityElement securityElement);

Parameters

securityElement
SecurityElement

The XML encoding used to reconstruct the SocketPermission instance.

Exceptions

The securityElement is null.

The securityElement is not a permission element for this type.

Examples

The following example uses the FromXml method to convert XML encoded data to a SocketPermission instance.

C#
  SocketPermission socketPermission1 = new SocketPermission(PermissionState.Unrestricted);

  // Create a 'SocketPermission' object for two ip addresses.
  SocketPermission socketPermission2 = new SocketPermission(PermissionState.None);
  SecurityElement securityElement1 = socketPermission2.ToXml();
  // 'SocketPermission' object for 'Connect' permission
  SecurityElement securityElement2 = new SecurityElement("ConnectAccess");
  // Format to specify ip address are <ip-address>#<port>#<transport-type>
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and
// for 'All'ports for the ip-address.
  SecurityElement securityElement3 = new SecurityElement("URI", "192.168.144.238#-1#3");
  // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All' transport types and
// for 'All' ports for the ip-address.
  SecurityElement securityElement4 = new SecurityElement("URI", "192.168.144.240#-1#3");
  securityElement2.AddChild(securityElement3);
  securityElement2.AddChild(securityElement4);
  securityElement1.AddChild(securityElement2);
  
 // Obtain a 'SocketPermission' object using 'FromXml' method.
  socketPermission2.FromXml(securityElement1);

  Console.WriteLine("\nDisplays the result of FromXml method : \n");
  Console.WriteLine(socketPermission2.ToString());

  // Create another 'SocketPermission' object with two ip addresses.
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and for 'All' ports for the ip-address.
  SocketPermission socketPermission3 =
                  new SocketPermission(NetworkAccess.Connect,
                                       TransportType.All,
                                       "192.168.144.238",
                                       SocketPermission.AllPorts);

 // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and for 'All' ports for the ip-address.
  socketPermission3.AddPermission(NetworkAccess.Connect,
                                 TransportType.All,
                                 "192.168.144.239",
                                 SocketPermission.AllPorts);

  Console.WriteLine("Displays the result of AddPermission method : \n");
  Console.WriteLine(socketPermission3.ToString());

 // Find the intersection between two 'SocketPermission' objects.
  socketPermission1 = (SocketPermission)socketPermission2.Intersect(socketPermission3);

  Console.WriteLine("Displays the result of Intersect method :\n ");
  Console.WriteLine(socketPermission1.ToString());

  // Demand that the calling method have the requsite socket permission.
  socketPermission1.Demand();

Remarks

The FromXml method reconstructs a SocketPermission instance from an XML encoding defined by the SecurityElement class.

Use the ToXml method to encode the SocketPermission instance, including state information, in XML.

Applies to

Product Versions
.NET 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9