zoukankan      html  css  js  c++  java
  • wp7 xml

    public class DynamicXMLNode : DynamicObject
    {
    XElement node;
    public DynamicXMLNode(XElement node)
    {
    this.node = node;
    }
    public DynamicXMLNode()
    {
    }
    public DynamicXMLNode(String name)
    {
    node = new XElement(name);
    }
    public override bool TrySetMember(
    SetMemberBinder binder, object value)
    {
    XElement setNode = node.Element(binder.Name);
    if (setNode != null)
    setNode.SetValue(value);
    else
    {
    if (value.GetType() == typeof(DynamicXMLNode))
    node.Add(new XElement(binder.Name));
    else
    node.Add(new XElement(binder.Name, value));
    }
    return true;
    }
    public override bool TryGetMember(
    GetMemberBinder binder, out object result)
    {
    XElement getNode = node.Element(binder.Name);
    if (getNode != null)
    {
    result = new DynamicXMLNode(getNode);
    return true;
    }
    else
    {
    result = null;
    return false;
    }
    }

    public override bool TryConvert(
    ConvertBinder binder, out object result)
    {
    if (binder.Type == typeof(String))
    {
    result = node.Value;
    return true;
    }
    else
    {
    result = null;
    return false;
    }
    }

    public override bool TryInvokeMember(
    InvokeMemberBinder binder,
    object[] args,
    out object result)
    {
    Type xmlType = typeof(XElement);
    try
    {
    result = xmlType.InvokeMember(
    binder.Name,
    BindingFlags.InvokeMethod |
    BindingFlags.Public |
    BindingFlags.Instance,
    null, node, args);
    return true;
    }
    catch
    {
    result = null;
    return false;
    }
    }

    }

  • 相关阅读:

    es -Aggregations
    散列表学习
    SpringCloud (一)——基本的搭建
    1.5 中不支持 lambda 表达 java
    区块链 (一)——基础
    线性表
    Redis(四)——消息队列
    rune is alias of int32
    wall time
  • 原文地址:https://www.cnblogs.com/androllen/p/3484625.html
Copyright © 2011-2022 走看看