csharp: add ObjectPacker

This commit is contained in:
Kazuki Oikawa 2011-04-10 12:52:14 +09:00
parent 68a98d3dd0
commit 60643f023f
8 changed files with 404 additions and 6 deletions

View file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
namespace msgpack
{
public static class ReflectionCache
{
static Dictionary<Type, ReflectionCacheEntry> _cache;
static ReflectionCache ()
{
_cache = new Dictionary<Type,ReflectionCacheEntry> ();
}
public static ReflectionCacheEntry Lookup (Type type)
{
ReflectionCacheEntry entry;
lock (_cache) {
if (_cache.TryGetValue (type, out entry))
return entry;
}
entry = new ReflectionCacheEntry (type);
lock (_cache) {
_cache[type] = entry;
}
return entry;
}
public static void RemoveCache (Type type)
{
lock (_cache) {
_cache.Remove (type);
}
}
public static void Clear ()
{
lock (_cache) {
_cache.Clear ();
}
}
}
}