OpenMetaverse.Messages.Linden.MapLayerMessage.Deserialize C# (CSharp) Метод

Deserialize() публичный Метод

Deserialize the message
public Deserialize ( OSDMap map ) : void
map OSDMap An containing the data
Результат void
        public void Deserialize(OSDMap map)
        {
            if (map.ContainsKey("LayerData"))
                Request = new MapLayerReplyVariant();
            else if (map.ContainsKey("Flags"))
                Request = new MapLayerRequestVariant();
            else
                Logger.Log("Unable to deserialize MapLayerMessage: No message handler exists", Helpers.LogLevel.Warning);

            if (Request != null)
                Request.Deserialize(map);
        }
    }

Usage Example

Пример #1
0
        public void MapLayerMessage()
        {

            MapLayerMessage s = new MapLayerMessage();
            s.Flags = 1;

            MapLayerMessage.LayerData[] blocks = new MapLayerMessage.LayerData[2];

            MapLayerMessage.LayerData block = new MapLayerMessage.LayerData();
            block.ImageID = UUID.Random();
            block.Bottom = 1;
            block.Top = 2;
            block.Left = 3;
            block.Right = 4;



            blocks[0] = block;

            block.ImageID = UUID.Random();
            block.Bottom = 5;
            block.Top = 6;
            block.Left = 7;
            block.Right = 9;

            blocks[1] = block;

            s.LayerDataBlocks = blocks;

            OSDMap map = s.Serialize();

            MapLayerMessage t = new MapLayerMessage();

            t.Deserialize(map);

            Assert.AreEqual(s.Flags, t.Flags);


            for (int i = 0; i < s.LayerDataBlocks.Length; i++)
            {
                Assert.AreEqual(s.LayerDataBlocks[i].ImageID, t.LayerDataBlocks[i].ImageID);
                Assert.AreEqual(s.LayerDataBlocks[i].Top, t.LayerDataBlocks[i].Top);
                Assert.AreEqual(s.LayerDataBlocks[i].Left, t.LayerDataBlocks[i].Left);
                Assert.AreEqual(s.LayerDataBlocks[i].Right, t.LayerDataBlocks[i].Right);
                Assert.AreEqual(s.LayerDataBlocks[i].Bottom, t.LayerDataBlocks[i].Bottom);
            }
        }