Ejemplo n.º 1
0
        public InterfaceClassPair GetInterfaceClassPair(string interfaceFullName)
        {
            if (!interfacesByName.ContainsKey(interfaceFullName))
            {
                throw new KeyNotFoundException($"Interface `{interfaceFullName}` is not mapped");
            }

            if (!pairsCache.ContainsKey(interfaceFullName))
            {
                var interfaceType = interfacesByName[interfaceFullName];
                var pair          = InterfaceClassPair.CreateNew(interfaceType, pairs[interfaceType]);
                pairsCache.Add(interfaceFullName, pair);
            }

            return(pairsCache[interfaceFullName]);
        }
Ejemplo n.º 2
0
        public void Add(Type interfaceType, Type classType)
        {
            var interfaceFullName = interfaceType.FullName;

            if (!interfacesByName.ContainsKey(interfaceFullName))
            {
                interfacesByName.Add(interfaceFullName, interfaceType);
            }

            var pair = InterfaceClassPair.CreateNew(interfaceType, classType);

            if (!pairsCache.ContainsKey(interfaceFullName))
            {
                pairs.Add(interfaceType, classType);
                pairsCache.Add(interfaceFullName, pair);
            }
            else
            {
                pairs[interfaceType]          = classType;
                pairsCache[interfaceFullName] = pair;
            }
        }