GacMembershipCondition.FromXml 方法

定义

使用指定的 XML 编码重新构造安全对象。

重载

FromXml(SecurityElement)

使用指定的 XML 编码重新构造安全对象。

FromXml(SecurityElement, PolicyLevel)

使用指定的 XML 编码,利用指定的策略级别上下文重新构造安全对象。

FromXml(SecurityElement)

使用指定的 XML 编码重新构造安全对象。

public:
 virtual void FromXml(System::Security::SecurityElement ^ e);
public void FromXml (System.Security.SecurityElement e);
abstract member FromXml : System.Security.SecurityElement -> unit
override this.FromXml : System.Security.SecurityElement -> unit
Public Sub FromXml (e As SecurityElement)

参数

e
SecurityElement

包含用于重新构造安全对象的 XML 编码的 SecurityElement

实现

例外

enull

e 不是有效的成员条件元素。

示例

下面的代码示例演示了该方法 FromXml 的使用。 此示例是为类提供的大型示例的 GacMembershipCondition 一部分。

GacMembershipCondition ^ Gac1 = gcnew GacMembershipCondition;
GacMembershipCondition ^ Gac2 = gcnew GacMembershipCondition;

// Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2->FromXml(Gac1->ToXml());
bool result = Gac2->Equals(Gac1);
if (result)
{
    Console::WriteLine("Result of ToXml() = {0}", Gac2->ToXml());
    Console::WriteLine(
        "Result of ToFromXml roundtrip = {0}", Gac2);
}
else
{
    Console::WriteLine(Gac2->ToString());
    Console::WriteLine(Gac1->ToString());
    return false;
}
GacMembershipCondition Gac1 = new GacMembershipCondition();
GacMembershipCondition Gac2 = new GacMembershipCondition();

// Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2.FromXml(Gac1.ToXml());
bool result = Gac2.Equals(Gac1);
if (result)
{
    Console.WriteLine(
        "Result of ToXml() = " + Gac2.ToXml().ToString());
    Console.WriteLine(
        "Result of ToFromXml roundtrip = " + Gac2.ToString());
}
else
{
    Console.WriteLine(Gac2.ToString());
    Console.WriteLine(Gac1.ToString());
    return false;
}
Dim Gac1 As New GacMembershipCondition
Dim Gac2 As New GacMembershipCondition

' Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2.FromXml(Gac1.ToXml())
Dim result As Boolean = Gac2.Equals(Gac1)
If result Then
    Console.WriteLine(("Result of ToXml() = " & _ 
        Gac2.ToXml().ToString()))
    Console.WriteLine(("Result of ToFromXml roundtrip = " & _ 
        Gac2.ToString()))
Else
    Console.WriteLine(Gac2.ToString())
    Console.WriteLine(Gac1.ToString())
    Return False
End If

注解

该方法FromXml从类定义的 SecurityElement XML 编码重新构造 AGacMembershipConditionToXml使用该方法对包括状态信息进行 XML 编码GacMembershipCondition

适用于

FromXml(SecurityElement, PolicyLevel)

使用指定的 XML 编码,利用指定的策略级别上下文重新构造安全对象。

public:
 virtual void FromXml(System::Security::SecurityElement ^ e, System::Security::Policy::PolicyLevel ^ level);
public void FromXml (System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level);
abstract member FromXml : System.Security.SecurityElement * System.Security.Policy.PolicyLevel -> unit
override this.FromXml : System.Security.SecurityElement * System.Security.Policy.PolicyLevel -> unit
Public Sub FromXml (e As SecurityElement, level As PolicyLevel)

参数

e
SecurityElement

包含用于重新构造安全对象的 XML 编码的 SecurityElement

level
PolicyLevel

用于解析 PolicyLevel 引用的 NamedPermissionSet 上下文。

实现

例外

enull

e 不是有效的成员条件元素。

示例

下面的代码示例演示了该方法 FromXml 的使用。 此示例是为类提供的大型示例的 GacMembershipCondition 一部分。

GacMembershipCondition ^ Gac3 = gcnew GacMembershipCondition;
GacMembershipCondition ^ Gac4 = gcnew GacMembershipCondition;
IEnumerator^ policyEnumerator = SecurityManager::PolicyHierarchy();
while (policyEnumerator->MoveNext())
{
    PolicyLevel^ currentLevel = 
        dynamic_cast<PolicyLevel^>(policyEnumerator->Current);
    if (currentLevel->Label->Equals("Machine"))
    {
        Console::WriteLine("Result of ToXml(level) = {0}", 
            Gac3->ToXml(currentLevel));
        Gac4->FromXml(Gac3->ToXml(), currentLevel);
        Console::WriteLine(
            "Result of FromXml(element, level) = {0}", Gac4);
    }
}
GacMembershipCondition Gac3 = new GacMembershipCondition();
GacMembershipCondition Gac4 = new GacMembershipCondition();
IEnumerator policyEnumerator = SecurityManager.PolicyHierarchy();
while (policyEnumerator.MoveNext())
{
    PolicyLevel currentLevel = 
        (PolicyLevel)policyEnumerator.Current;
    if (currentLevel.Label == "Machine")
    {
        Console.WriteLine("Result of ToXml(level) = " + 
            Gac3.ToXml(currentLevel));
        Gac4.FromXml(Gac3.ToXml(), currentLevel);
        Console.WriteLine("Result of FromXml(element, level) = " + 
            Gac4.ToString());
    }
}
Dim Gac3 As New GacMembershipCondition
Dim Gac4 As New GacMembershipCondition
Dim policyEnumerator As IEnumerator = _
    SecurityManager.PolicyHierarchy()
While policyEnumerator.MoveNext()
    Dim currentLevel As PolicyLevel = _
        CType(policyEnumerator.Current, PolicyLevel)
    If currentLevel.Label = "Machine" Then
        Console.WriteLine(("Result of ToXml(level) = " & _
            Gac3.ToXml(currentLevel).ToString()))
        Gac4.FromXml(Gac3.ToXml(), currentLevel)
        Console.WriteLine(("Result of FromXml(element, level) = " _
            & Gac4.ToString()))
    End If
End While

注解

为解析命名权限集引用提供了策略级别上下文。 例如,代码组使用策略级别查找命名权限集。

适用于