Forum Multiplayer Please allow us to use dynamic if possible.

Discussion and help relating to the PlayerIO Multiplayer API.

Please allow us to use dynamic if possible.

Postby Emalton » April 19th, 2018, 12:08 am

This:
Code: Select all
public static DatabaseObject Clone(this DatabaseObject obj)
        {
            var clone = new DatabaseObject();
            foreach (var item in obj)
            {
                var databaseObj = item.Value as DatabaseObject;
                if (databaseObj != null)
                {
                    clone.Set(item.Key, databaseObj.Clone());
                }
                else
                {
                    var databaseArray = item.Value as DatabaseArray;
                    if (databaseArray != null)
                    {
                        clone.Set(item.Key, databaseArray.Clone());
                    }
                    else
                    {
                        clone.Set(item.Key, (dynamic)item.Value);
                    }
                }
            }
            return clone;
        }

Now has to be:
Code: Select all
public static DatabaseObject Clone(this DatabaseObject obj)
        {
            var clone = new DatabaseObject();
            foreach (var item in obj)
            {
                var databaseObj = item.Value as DatabaseObject;
                if (databaseObj != null)
                {
                    clone.Set(item.Key, databaseObj.Clone());
                }
                else
                {
                    var databaseArray = item.Value as DatabaseArray;
                    if (databaseArray != null)
                    {
                        clone.Set(item.Key, databaseArray.Clone());
                    }
                    else
                    {
                        if (item.Value is string)
                        {
                            clone.Set(item.Key, (string)item.Value);
                        }
                        else if (item.Value is int)
                        {
                            clone.Set(item.Key, (int)item.Value);
                        }
                        else if (item.Value is uint)
                        {
                            clone.Set(item.Key, (uint)item.Value);
                        }
                        else if (item.Value is long)
                        {
                            clone.Set(item.Key, (long)item.Value);
                        }
                        else if (item.Value is bool)
                        {
                            clone.Set(item.Key, (bool)item.Value);
                        }
                        else if (item.Value is float)
                        {
                            clone.Set(item.Key, (float)item.Value);
                        }
                        else if (item.Value is double)
                        {
                            clone.Set(item.Key, (double)item.Value);
                        }
                        else if (item.Value is byte[])
                        {
                            clone.Set(item.Key, (byte[])item.Value);
                        }
                        else if (item.Value is DateTime)
                        {
                            clone.Set(item.Key, (DateTime)item.Value);
                        }
                    }
                }
            }
            return clone;
        }


:(
Emalton
 
Posts: 86
Joined: June 28th, 2013, 3:49 am

Return to Multiplayer