Пример #1
0
        public virtual IDumper CreateInstance(string typeFullName)
        {
            var deserializedType = Type.GetType(typeFullName);

            if (deserializedType == null)
            {
                foreach (string assembly in assemblies)
                {
                    deserializedType = Type.GetType(typeFullName + ", " + assembly);
                    if (deserializedType != null)
                    {
                        break;
                    }
                }
            }

            IDumper instance = Activator.CreateInstance(deserializedType) as IDumper;

            if (instance is IHasSafeSharedObjects)
            {
                IHasSafeSharedObjects withSharedObjects = instance as IHasSafeSharedObjects;
                withSharedObjects.Shared = safeSharedObjects;
            }

            return(instance);
        }
Пример #2
0
        public override IDumper CreateAndLoad(string typeFullName, Dump data)
        {
            IDumper instance = base.CreateInstance(typeFullName);

            if (instance is IHasSharedObjects)
            {
                IHasSharedObjects withSharedObjects = instance as IHasSharedObjects;
                withSharedObjects.Shared = sharedObjects;
            }
            else if (instance is IHasSafeSharedObjects)
            {
                IHasSafeSharedObjects withSharedObjects = instance as IHasSafeSharedObjects;
                withSharedObjects.Shared = sharedObjects;
            }

            if (instance != null)
            {
                instance.LoadDump(data);
            }

            return(instance);
        }