Beispiel #1
0
        internal void Completed(int refId)
        {
            var currentObject = GetObjectByReferenceId(refId);

            if (currentObject == null)
            {
                // this may happen with empty delegates
                return;
            }

            if (HashCodeBasedWaitingValues.TryGetValue(refId, out var dictionaryAndValue))
            {
                HashCodeBasedWaitingValues.Remove(refId);
                var dictionaryType = dictionaryAndValue.Dictionary.GetType();
                readMethods.addHashCodeBasedDeferredElementProvider.GetOrCreate(dictionaryType)(dictionaryAndValue.Dictionary, currentObject, dictionaryAndValue.Value);
            }

            var type = currentObject.GetType();

            readMethods.completeMethodsProvider.GetOrCreate(type)(this, refId);
        }
Beispiel #2
0
 internal void AddHashCodeBasedWaitingValue(object dictionary, int keyId, object value)
 {
     HashCodeBasedWaitingValues.Add(keyId, (dictionary, value));
 }