public object GetService(Type serviceType, string contract = null) { var pair = Tuple.Create(serviceType, contract ?? string.Empty); if (!_registry.ContainsKey(pair)) { var res = _container.TryGetExportedValue(serviceType); Intercept(res); return(res); } var ret = _registry[pair].Last()(); Intercept(ret); return(ret); }