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); }
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); }