main
 1using System;
 2using System.Collections.Generic;
 3using gorilla.utility;
 4
 5namespace utility
 6{
 7    static public class MapperRegistery
 8    {
 9        static Dictionary<MapKey, object> mappings = new Dictionary<MapKey, object>();
10
11        static public void Register<Input, Output>(Func<Input, Output> conversion)
12        {
13            mappings.Add(new MapKey<Input, Output>(), conversion);
14        }
15
16        static public Output Map<Input, Output>(Input item)
17        {
18            var converter = mappings[new MapKey<Input, Output>()];
19            return converter.downcast_to<Func<Input, Output>>()(item);
20        }
21    }
22}