IfcDoc.FormatTTL_Stream.WriteListWithValues C# (CSharp) Méthode

WriteListWithValues() private méthode

private WriteListWithValues ( Type ft, System list ) : void
ft System.Type
list System
Résultat void
        private void WriteListWithValues(Type ft, System.Collections.IList list)
        {
            //Console.Out.WriteLine("WriteListWithValues() started");
            ft = ft.GetGenericArguments()[0];

            List<string> valuelist = new List<string>();

            FieldInfo fieldValue = ft.GetField("Value");
            for (int i = 0; i < list.Count; i++)
            {
                object elem = list[i];
                if (elem != null) // should never be null, but be safe
                {
                    elem = fieldValue.GetValue(elem);
                    if (elem is byte[])
                    {
                        // IfcPixelTexture.Pixels
                        if (i == 0)
                            Console.Out.WriteLine("MESSAGE-CHECK: Write IfcBinary 2");
                        byte[] bytes = (byte[])elem;

                        char[] s_hexchar = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
                        StringBuilder sb = new StringBuilder(bytes.Length * 2);
                        for (int z = 0; z < bytes.Length; z++)
                        {
                            byte b = bytes[z];
                            sb.Append(s_hexchar[b / 0x10]);
                            sb.Append(s_hexchar[b % 0x10]);
                        }
                        valuelist.Add(sb.ToString());
                    }
                    else
                    {
                        //Simple list: like an IfcCartesianPoint
                        string encodedvalue = System.Security.SecurityElement.Escape(elem.ToString());
                        valuelist.Add(encodedvalue);
                    }
                }
            }

            Console.Out.WriteLine("Message: Creating WriteListWithValues with XSDType : " + fieldValue.FieldType.Name);
            //Console.Out.WriteLine("Warning: Creating WriteListWithValues with XSDType : " + fieldValue.GetType().Name);
            ListObject newListObject = GetListObject(ft.Name + "_List_", ft.Name, valuelist, fieldValue.FieldType.Name);
            m_writer.Write("inst:" + newListObject.URI);
            //Console.Out.WriteLine("WriteListWithValues() finished");
        }