コード例 #1
0
        private static IEnumerable <string> ProcessBINStructure(BINStructure structure)
        {
            List <string> strings = new List <string>();

            foreach (BINValue value in structure.Values)
            {
                strings.AddRange(ProcessBINValue(value));
            }

            return(strings);
        }
コード例 #2
0
ファイル: BINProcessor.cs プロジェクト: LoL-Fantome/Railgun
        private static List <TreeViewItem> ProcessStructure(BINValue value)
        {
            BINStructure        structure = value.Value as BINStructure;
            List <TreeViewItem> nodes     = new List <TreeViewItem>();

            foreach (BINValue structureValue in structure.Values)
            {
                nodes.Add(GenerateValueNode(structureValue));
            }

            return(nodes);
        }
コード例 #3
0
        private static object SerializeStructure(BINValue value)
        {
            BINStructure structure = value.Value as BINStructure;

            if (_classMap.ContainsKey(structure.Property))
            {
                return(Serialize(structure.Values, _classMap[structure.Property]));
            }
            else
            {
                return(null);
            }
        }
コード例 #4
0
ファイル: BINProcessor.cs プロジェクト: LoL-Fantome/Railgun
        private static List <TreeViewItem> ProcessMap(BINValue value)
        {
            BINMap map = value.Value as BINMap;
            List <TreeViewItem> nodes = new List <TreeViewItem>();

            foreach (KeyValuePair <BINValue, BINValue> pair in map.Values)
            {
                TreeViewItem node = new TreeViewItem()
                {
                    Header = ProcessKeyValue(pair.Key)
                };

                if (map.ValueType != BINValueType.Structure && map.ValueType != BINValueType.Embedded)
                {
                    node.Header += " => " + (ProcessPrimitiveValue(pair.Value, false).Children[0] as TextBlock).Text;
                }
                else
                {
                    BINStructure structure = pair.Value.Value as BINStructure;
                    node.Header += " : " + BINGlobal.GetClass(structure.Property);

                    foreach (TreeViewItem structureNode in ProcessStructure(pair.Value))
                    {
                        node.Items.Add(structureNode);
                    }
                }

                nodes.Add(node);
            }

            return(nodes);

            string ProcessKeyValue(BINValue keyValue)
            {
                if (map.KeyType == BINValueType.Byte)
                {
                    return(((byte)keyValue.Value).ToString());
                }
                else if (map.KeyType == BINValueType.UInt16)
                {
                    return(((ushort)keyValue.Value).ToString());
                }
                else if (map.KeyType == BINValueType.UInt32)
                {
                    return(((uint)keyValue.Value).ToString());
                }
                else if (map.KeyType == BINValueType.UInt64)
                {
                    return(((ulong)keyValue.Value).ToString());
                }
                else if (map.KeyType == BINValueType.String)
                {
                    return((string)keyValue.Value);
                }
                else if (map.KeyType == BINValueType.StringHash)
                {
                    return(((uint)keyValue.Value).ToString());
                }
                else
                {
                    return("");
                }
            }
        }