Export (0) Print
Expand All

DnsPermission::FromXml Method

Reconstructs a DnsPermission instance from an XML encoding.

Namespace:  System.Net
Assembly:  System (in System.dll)

public:
virtual void FromXml(
	SecurityElement^ securityElement
) override

Parameters

securityElement
Type: System.Security::SecurityElement

The XML encoding to use to reconstruct the DnsPermission instance.

Implements

ISecurityEncodable::FromXml(SecurityElement)

ExceptionCondition
ArgumentNullException

securityElement is nullptr.

ArgumentException

securityElement is not a DnsPermission element.

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

Use the ToXml method to XML-encode the DnsPermission instance, including state information.

The following example reconstructs a DnsPermission instance from an XML encoding.

public:
   void ConstructDnsPermission()
   {
      try
      {
         // Create a DnsPermission instance.
         DnsPermission^ permission = gcnew DnsPermission( PermissionState::None );
         // Create a SecurityElement instance by calling the ToXml method on the 
         // DnsPermission instance. 
         // Print its attributes, which hold the  XML encoding of the DnsPermission 
         // instance.
         Console::WriteLine( "Attributes and Values of 'DnsPermission' instance :" );
         PrintKeysAndValues( permission->ToXml()->Attributes );

         // Create a SecurityElement instance.
         SecurityElement^ securityElementObj = gcnew SecurityElement( "IPermission" );
         // Add attributes and values of the SecurityElement instance corresponding to 
         // the permission instance.
         securityElementObj->AddAttribute( "version", "1" );
         securityElementObj->AddAttribute( "Unrestricted", "true" );
         securityElementObj->AddAttribute( "class", "System.Net.DnsPermission" );

         // Reconstruct a DnsPermission instance from an XML encoding.
         DnsPermission^ permission1 = gcnew DnsPermission( PermissionState::None );
         permission1->FromXml( securityElementObj );

         // Print the attributes and values of the constructed DnsPermission Object*.
         Console::WriteLine( "After reconstruction Attributes and Values of new DnsPermission instance :" );
         PrintKeysAndValues( permission1->ToXml()->Attributes );
      }
      catch ( NullReferenceException^ e ) 
      {
         Console::WriteLine( "NullReferenceException caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
      catch ( SecurityException^ e ) 
      {
         Console::WriteLine( "SecurityException caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
      catch ( ArgumentNullException^ e ) 
      {
         Console::WriteLine( "ArgumentNullException caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Exception caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
   }

private:
   void PrintKeysAndValues( Hashtable^ myList )
   {
      // Get the enumerator that can iterate through the hash table.
      IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator();
      Console::WriteLine( "\t-KEY-\t-VALUE-" );
      while ( myEnumerator->MoveNext() )
      {
         Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value );
      }
      Console::WriteLine();
   }

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft