private IWeakReferenceIdentityMap GetOrCreateIdentityMap(IKey key) { if (_identityMap0 == null) { _identityMap0 = key.GetWeakReferenceIdentityMapFactory()(); return(_identityMap0); } if (_identityMap0.Key == key) { return(_identityMap0); } if (_identityMap1 == null) { _identityMap1 = key.GetWeakReferenceIdentityMapFactory()(); return(_identityMap1); } if (_identityMap1.Key == key) { return(_identityMap1); } if (_identityMaps == null) { _identityMaps = new Dictionary <IKey, IWeakReferenceIdentityMap>(); } if (!_identityMaps.TryGetValue(key, out var identityMap)) { identityMap = key.GetWeakReferenceIdentityMapFactory()(); _identityMaps[key] = identityMap; } return(identityMap); }
private IWeakReferenceIdentityMap GetOrCreateIdentityMap(IKey key) { if (_identityMap0 == null) { _identityMap0 = key.GetWeakReferenceIdentityMapFactory()(); return _identityMap0; } if (_identityMap0.Key == key) { return _identityMap0; } if (_identityMap1 == null) { _identityMap1 = key.GetWeakReferenceIdentityMapFactory()(); return _identityMap1; } if (_identityMap1.Key == key) { return _identityMap1; } if (_identityMaps == null) { _identityMaps = new Dictionary<IKey, IWeakReferenceIdentityMap>(); } IWeakReferenceIdentityMap identityMap; if (!_identityMaps.TryGetValue(key, out identityMap)) { identityMap = key.GetWeakReferenceIdentityMapFactory()(); _identityMaps[key] = identityMap; } return identityMap; }
private TypeInfo GetIdentityMapGetType(IKey key) => key.GetWeakReferenceIdentityMapFactory().Invoke().GetType().GetTypeInfo();