예제 #1
0
        /// <summary>
        /// Returns the FREArray as a C# string[].
        /// </summary>
        /// <returns></returns>
        public string[] AsStringArray()
        {
            var arr = new string[Length];
            var len = Length;

            if (len <= 0)
            {
                return(arr);
            }
            for (uint i = 0; i < len; i++)
            {
                var itm = At(i);
                if (itm.Type() != FreObjectTypeSharp.String)
                {
                    return(arr);
                }

                arr[i] = FreSharpHelper.GetAsString(itm);
            }

            return(arr);
        }
예제 #2
0
 /// <summary>
 /// Traces the message to the console.
 /// </summary>
 /// <param name="message">Message to log.</param>
 /// <param name="type">Type of error</param>
 /// <param name="freException">The Exception</param>
 public void Error(string message, FreResultSharp type, FREObject freException)
 {
     Context?.DispatchEvent("TRACE", $"[FreSharp] ‼ {type} {message}");
     if (FreObjectTypeSharp.Class != freException.Type())
     {
         return;
     }
     try {
         if (!freException.hasOwnProperty("getStackTrace"))
         {
             return;
         }
         var asStackTrace = freException.Call("getStackTrace");
         if (FreObjectTypeSharp.String == asStackTrace.Type())
         {
             Context?.DispatchEvent("TRACE", $"[FreSharp] ‼ {FreSharpHelper.GetAsString(asStackTrace)}");
         }
     }
     catch (Exception) {
         //ignored
     }
 }
예제 #3
0
 /// <summary>
 /// Converts a FREObject to a C# string
 /// </summary>
 /// <param name="inFre"></param>
 /// <returns></returns>
 public static string AsString(this FREObject inFre) => FreSharpHelper.GetAsString(inFre);
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ArrayList GetAsArrayList()
        {
            var al  = new ArrayList();
            var len = Length;

            if (len <= 0)
            {
                return(al);
            }
            for (uint i = 0; i < len; i++)
            {
                var itm  = At(i);
                var type = itm.Type();
                switch (type)
                {
                case FreObjectTypeSharp.String:
                    al.Add(FreSharpHelper.GetAsString(itm));
                    break;

                case FreObjectTypeSharp.Bytearray:
                    var ba = new FreByteArraySharp(itm);
                    ba.Acquire();
                    var baTarget = new byte[ba.Length];
                    ba.Bytes.CopyTo(baTarget, 0);
                    al.Add(baTarget);
                    ba.Release();
                    break;

                case FreObjectTypeSharp.Array:
                case FreObjectTypeSharp.Vector:
                    var arrFre = new FREArray(itm);
                    al.Add(arrFre.GetAsArrayList());
                    break;

                case FreObjectTypeSharp.Bitmapdata:
                    var bmdFre = new FreBitmapDataSharp(itm);
                    al.Add(bmdFre.GetAsBitmap());
                    break;

                case FreObjectTypeSharp.Boolean:
                    al.Add(FreSharpHelper.GetAsBool(itm));
                    break;

                case FreObjectTypeSharp.Null:
                    break;

                case FreObjectTypeSharp.Int:
                    al.Add(FreSharpHelper.GetAsInt(itm));
                    break;

                case FreObjectTypeSharp.Object:
                case FreObjectTypeSharp.Class:
                    al.Add(FreSharpHelper.GetAsDictionary(itm));
                    break;

                case FreObjectTypeSharp.Number:
                    al.Add(FreSharpHelper.GetAsDouble(itm));
                    break;

                case FreObjectTypeSharp.Rectangle:
                    var rectFre = new FreRectangleSharp(itm);
                    al.Add(rectFre.Value);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            return(al);
        }
예제 #5
0
 /// <summary>
 /// Converts a FREObject to a C# string
 /// </summary>
 /// <param name="freObject"></param>
 /// <returns></returns>
 public static string AsString(this FREObject freObject) => FreSharpHelper.GetAsString(freObject);
예제 #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="inFre"></param>
 /// <returns></returns>
 public static string AsString(this FreObjectSharp inFre) => FreSharpHelper.GetAsString(inFre.RawValue);