Esempio n. 1
0
        public object DeserializeToType(FactReference reference, Type type)
        {
            if (!objectByReference.TryGetValue(reference, out var runtimeFact))
            {
                var(newCache, deserializer) = DeserializerCache.GetDeserializer(type);
                DeserializerCache           = newCache;
                try
                {
                    runtimeFact       = deserializer(graph.GetFact(reference), this);
                    objectByReference = objectByReference.Add(reference, runtimeFact);
                }
                catch (TargetInvocationException tie)
                {
                    throw tie.InnerException;
                }
            }

            return(runtimeFact);
        }