예제 #1
0
        public void GetFIXTagFromMessage()
        {
            StringBuilder sb         = new StringBuilder();
            FileStream    fileStream = new FileStream("./Application/FIXClientSpec/TestData/simplefix.txt", FileMode.Create);

            FIXMessage message = new FIXMessage();

            message.BeginString = "FIX 4.2";
            message.AvgPx       = 12.21F;

            Type type = message.GetType();

            foreach (var pi in type.GetProperties())
            {
                var value = pi.GetValue(message);
                var attr  = pi.GetCustomAttribute <FIXTagAttribute>();
                if (attr != null)
                {
                    sb.AppendFormat("{0:d}={1}\u0001", attr.Tag, value);
                    var rawData = Encoding.UTF8.GetBytes(string.Format("{0:d}={1}\u0001", attr.Tag, value));
                    Console.WriteLine(attr.Tag);
                    fileStream.Write(rawData, 0, rawData.Length);
                }
            }
            Console.WriteLine(sb.ToString());
            fileStream.Flush();
        }