internal static void LoadEditor(EditorCanvas canvas, string id) { var bytes = MemopadApplication.Instance.MemoAccessor.LoadMemento(id); //using (var stream = new MemoryStream(bytes)) //using (var reader = XmlDictionaryReader.CreateBinaryReader(stream, XmlDictionaryReaderQuotas.Max)) { // var knownTypes = new [] { // typeof(Memo), // typeof(Dictionary<string, object>), // typeof(List<IMemento>), // typeof(System.Drawing.Rectangle), // typeof(Mkamo.Common.Forms.Descriptions.FontDescription), // }; // var ser = new DataContractSerializer(typeof(Memento), knownTypes); // var mem = (IMemento) ser.ReadObject(reader); // canvas.LoadContent(mem, new MemoModelSerializer()); //} using (var stream = new MemoryStream(bytes)) { var formatter = new BinaryFormatter(); //formatter.Binder = new DelegatingSerializationBinder( // (assemName, typeName) => { // typeName = typeName.Replace("PublicKeyToken=null", "PublicKeyToken=89184b2d63ba68a6"); // var name = new AssemblyName(assemName); // var assem = default(Assembly); // try { // assem = Assembly.Load(name.Name); // } catch { // assem = Assembly.Load(name); // } // return assem.GetType(typeName); // } //); var mem = formatter.Deserialize(stream) as IMemento; //var serializer = new NetDataContractSerializer(); //var mem = serializer.Deserialize(stream) as IMemento; canvas.LoadContent(mem, new MemoModelSerializer()); } }