Пример #1
0
        private DataNode ExpandDataNode(DataNode dataNode, string tagPath)
        {
            string[] pathParts = tagPath.Split('/');

            DataNode curTag = dataNode;

            curTag.Expand();

            foreach (var part in pathParts)
            {
                TagDataNode.Container container = curTag as TagDataNode.Container;
                if (curTag == null)
                {
                    throw new Exception("Invalid tag path");
                }

                DataNode childTag = null;
                foreach (var child in curTag.Nodes)
                {
                    if (child.NodePathName == part)
                    {
                        childTag = child;
                    }
                }

                if (childTag == null)
                {
                    throw new Exception("Invalid tag path");
                }

                curTag.Expand();
            }

            return(curTag);
        }
Пример #2
0
 internal static short[] GetShortArray(this TagDataNode.Container c, string name) => c.Get <TagShortArrayDataNode>(name).Tag.ToTagShortArray().Data;
Пример #3
0
 internal static string GetString(this TagDataNode.Container c, string name) => c.Get <TagStringDataNode>(name).Tag.ToTagString().Data;
Пример #4
0
 internal static int GetInt(this TagDataNode.Container c, string name) => c.Get <TagIntDataNode>(name).Tag.ToTagInt().Data;
Пример #5
0
 internal static long[] GetLongArray(this TagDataNode.Container c, string name) => c.Get <TagLongArrayDataNode>(name).Tag.ToTagLongArray().Data;
Пример #6
0
 internal static float GetFloat(this TagDataNode.Container c, string name) => c.Get <TagFloatDataNode>(name).Tag.ToTagFloat().Data;
Пример #7
0
 internal static double GetDouble(this TagDataNode.Container c, string name) => c.Get <TagDoubleDataNode>(name).Tag.ToTagByte().Data;
Пример #8
0
 internal static byte[] GetByteArray(this TagDataNode.Container c, string name) => c.Get <TagByteArrayDataNode>(name).Tag.ToTagByteArray().Data;
Пример #9
0
 internal static sbyte[] GetSByteArray(this TagDataNode.Container c, string name) => c.Get <TagByteArrayDataNode>(name).Tag.ToTagByteArray().Data.Select(b => unchecked ((sbyte)b)).ToArray();
Пример #10
0
 internal static sbyte GetSByte(this TagDataNode.Container c, string name) => (sbyte)c.Get <TagByteDataNode>(name).Tag.ToTagByte().Data;