Пример #1
0
        public static void WriteAbcConst <T>(this SwfWriter writer, T value)
        {
            var typeCode = Type.GetTypeCode(typeof(T));

            switch (typeCode)
            {
            case TypeCode.Int32:
                writer.WriteIntEncoded((int)(object)value);
                break;

            case TypeCode.UInt32:
                writer.WriteUIntEncoded((uint)(object)value);
                break;

            case TypeCode.Double:
                writer.WriteDouble((double)(object)value);
                break;

            case TypeCode.String:
            {
                var s = value as string;
                if (string.IsNullOrEmpty(s))
                {
                    writer.WriteUIntEncoded(0);
                }
                else
                {
                    var data = Encoding.UTF8.GetBytes(s);
                    writer.WriteUIntEncoded((uint)data.Length);
                    writer.Write(data);
                }
            }
            break;

            default:
                throw new NotImplementedException();
            }
        }