public bool TryGetInterfaceClassPair(string interfaceFullName, out InterfaceClassPair handler) { handler = InterfaceClassPair.Empty; try { handler = GetInterfaceClassPair(interfaceFullName); return(true); } catch (Exception) { return(false); } }
public bool TryGetInterfaceClassPair <TInterface>(out InterfaceClassPair handler) { handler = InterfaceClassPair.Empty; try { handler = GetInterfaceClassPair <TInterface>(); return(true); } catch (Exception) { return(false); } }
public bool TryGetInterfaceClassPair(Type interfaze, out InterfaceClassPair handler) { handler = InterfaceClassPair.Empty; try { handler = GetInterfaceClassPair(interfaze); return(true); } catch (Exception) { return(false); } }
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]); }
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; } }