public Task Save(Stream stream, Map map)
 {
     return(Task.Factory.StartNew(() =>
     {
         var list = new List <SerialisedObject>
         {
             _factory.Serialise(map.Root)
         };
         list.AddRange(map.Data.Select(_factory.Serialise).Where(x => x != null));
         _formatter.Serialize(stream, list);
     }));
 }
예제 #2
0
        private string CreateCopyStream(IEnumerable <IMapObject> copiedObjects)
        {
            var clip = new SerialisedObject(SerialisedName);

            foreach (var obj in copiedObjects)
            {
                var so = _factory.Serialise(obj);
                clip.Children.Add(so);
            }
            using (var ms = new MemoryStream())
            {
                _formatter.Serialize(ms, clip);
                ms.Position = 0;
                using (var sr = new StreamReader(ms))
                {
                    return(sr.ReadToEnd());
                }
            }
        }