AsymmetricAlgorithm.FromXmlString-Methode
Stellt beim Überschreiben in einer abgeleiteten Klasse ein AsymmetricAlgorithm-Objekt aus einer XML-Zeichenfolge wieder her.
Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public MustOverride Sub FromXmlString ( _
xmlString As String _
)
'Usage
Dim instance As AsymmetricAlgorithm
Dim xmlString As String
instance.FromXmlString(xmlString)
public abstract void FromXmlString (
string xmlString
)
public:
virtual void FromXmlString (
String^ xmlString
) abstract
public abstract void FromXmlString (
String xmlString
)
public abstract function FromXmlString (
xmlString : String
)
Parameter
- xmlString
Die XML-Zeichenfolge zur Wiederherstellung des AsymmetricAlgorithm-Objekts.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie die FromXmlString-Methode implementiert wird, um die angegebene XML-Zeichenfolge zu analysieren und das aktuelle CspParameters-Objekt zu füllen. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die AsymmetricAlgorithm-Klasse.
' Expected XML schema:
' <CustomCryptoKeyValue>
' <ProviderName></ProviderName>
' <KeyContainerName></KeyContainerName>
' <KeyNumber></KeyNumber>
' <ProviderType></ProviderType>
' </CustomCryptoKeyValue>
Public Overrides Sub FromXmlString(ByVal xmlString As String)
If Not xmlString Is Nothing Then
Dim doc As New XmlDocument
doc.LoadXml(xmlString)
Dim firstNode As XmlNode = doc.FirstChild
Dim nodeList As XmlNodeList
' Assemble parameters from values in each XML element.
cspParameters = New CspParameters
' KeyContainerName is optional.
nodeList = doc.GetElementsByTagName("KeyContainerName")
Dim keyName As String = nodeList.Item(0).InnerText
If Not keyName Is Nothing Then
cspParameters.KeyContainerName = keyName
End If
' KeyNumber is optional.
nodeList = doc.GetElementsByTagName("KeyNumber")
Dim keyNumber As String = nodeList.Item(0).InnerText
If Not keyNumber Is Nothing Then
cspParameters.KeyNumber = Int32.Parse(keyNumber)
End If
' ProviderName is optional.
nodeList = doc.GetElementsByTagName("ProviderName")
Dim providerName As String = nodeList.Item(0).InnerText
If Not providerName Is Nothing Then
cspParameters.ProviderName = providerName
End If
' ProviderType is optional.
nodeList = doc.GetElementsByTagName("ProviderType")
Dim providerType As String = nodeList.Item(0).InnerText
If Not providerType Is Nothing Then
cspParameters.ProviderType = Int32.Parse(providerType)
End If
Else
Throw New ArgumentNullException("xmlString")
End If
End Sub
// Expected XML schema:
// <CustomCryptoKeyValue>
// <ProviderName></ProviderName>
// <KeyContainerName></KeyContainerName>
// <KeyNumber></KeyNumber>
// <ProviderType></ProviderType>
// </CustomCryptoKeyValue>
public override void FromXmlString(string xmlString)
{
if (xmlString != null)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
XmlNode firstNode = doc.FirstChild;
XmlNodeList nodeList;
// Assemble parameters from values in each XML element.
cspParameters = new CspParameters();
// KeyContainerName is optional.
nodeList = doc.GetElementsByTagName("KeyContainerName");
string keyName = nodeList.Item(0).InnerText;
if (keyName != null)
{
cspParameters.KeyContainerName = keyName;
}
// KeyNumber is optional.
nodeList = doc.GetElementsByTagName("KeyNumber");
string keyNumber = nodeList.Item(0).InnerText;
if (keyNumber != null)
{
cspParameters.KeyNumber = Int32.Parse(keyNumber);
}
// ProviderName is optional.
nodeList = doc.GetElementsByTagName("ProviderName");
string providerName = nodeList.Item(0).InnerText;
if (providerName != null)
{
cspParameters.ProviderName = providerName;
}
// ProviderType is optional.
nodeList = doc.GetElementsByTagName("ProviderType");
string providerType = nodeList.Item(0).InnerText;
if (providerType != null)
{
cspParameters.ProviderType = Int32.Parse(providerType);
}
}
else
{
throw new ArgumentNullException("xmlString");
}
}
// Expected XML schema:
// <CustomCryptoKeyValue>
// <ProviderName></ProviderName>
// <KeyContainerName></KeyContainerName>
// <KeyNumber></KeyNumber>
// <ProviderType></ProviderType>
// </CustomCryptoKeyValue>
public:
virtual void FromXmlString(String^ xmlString) override
{
if (xmlString != nullptr)
{
XmlDocument^ document = gcnew XmlDocument();
document->LoadXml(xmlString);
XmlNode^ firstNode = document->FirstChild;
XmlNodeList^ nodeList;
// Assemble parameters from values in each XML element.
cryptoServiceParameters = gcnew CspParameters();
// KeyContainerName is optional.
nodeList =
document->GetElementsByTagName("KeyContainerName");
if (nodeList->Count > 0)
{
cryptoServiceParameters->KeyContainerName =
nodeList->Item(0)->InnerText;
}
// KeyNumber is optional.
nodeList = document->GetElementsByTagName("KeyNumber");
if (nodeList->Count > 0)
{
cryptoServiceParameters->KeyNumber =
Int32::Parse(nodeList->Item(0)->InnerText);
}
// ProviderName is optional.
nodeList = document->GetElementsByTagName("ProviderName");
if (nodeList->Count > 0)
{
cryptoServiceParameters->ProviderName =
nodeList->Item(0)->InnerText;
}
// ProviderType is optional.
nodeList = document->GetElementsByTagName("ProviderType");
if (nodeList->Count > 0)
{
cryptoServiceParameters->ProviderType =
Int32::Parse(nodeList->Item(0)->InnerText);
}
}
else
{
throw gcnew ArgumentNullException("xmlString");
}
}
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
AsymmetricAlgorithm-Klasse
AsymmetricAlgorithm-Member
System.Security.Cryptography-Namespace