public void TestLocalWeaktable()
        {
            var table = new AddonStore();
            var obj   = new object();

            obj.Set(table, new MyData());

            var data = obj.Get <MyData>(table);
        }
        public void TestPostsharpAddonStore()
        {
            throw new NotImplementedException();
            var table = new AddonStore();
            // TODO: postsharp shizzles?
            var obj = new object();

            obj.Set(new MyData());

            var data = obj.Get <MyData>();
        }
        public static void Set <T>(this object obj, AddonStore store, T value)
        {
            var dict = store.Table.GetOrCreateValue(obj);

            dict[typeof(T)] = value;
        }
        public static T Get <T>(this object obj, AddonStore store) where T : class
        {
            var dict = store.Table.GetOrCreateValue(obj);

            return(dict[typeof(T)] as T);
        }