Stream stream = null; try { plugin.Initialize(); //plugin is IPlugin instance created with Activator.CreateInstance stream = File.Open("serialized.txt", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, plugin); //Successful stream.Close(); stream = File.Open("serialized.txt", FileMode.Open); BinaryFormatter formatter2 = new BinaryFormatter(); object obj = formatter2.Deserialize(stream); //Fails this.Text = obj.GetType().ToString(); } catch (Exception ex) { this.Text = ex.Message; } finally { stream.Close(); }