Wednesday, June 4, 2014

[CSharp] how to get the size of an obj

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{

    public class Test
    {
        static void Main(string[] args)
        {
            Node node = new Node();
            Node nodeNext = new Node();
            node.Next = nodeNext;
            node.Data = "data";

            long size = Utils.ObjectUtils.GetObjectSize(node);
            Console.WriteLine(size);
        }

        private static long GetObjectSize(object obj)
        {
            var bf = new BinaryFormatter();
            var ms = new MemoryStream();
            bf.Serialize(ms, obj);
            var size = ms.Length;
            ms.Dispose();
            return size;
        }
    }
    
    [Serializable]
    class Node
    {
        public Node Next { get; set; }
        public Object Data { get; set; }
    }

}




No comments:

Post a Comment