示例#1
0
        public string GetNavigationState(MtFrame frame)
        {
            // remove pages which do not support tombstoning
            var pagesToSerialize        = _pages;
            var currentIndexToSerialize = CurrentIndex;
            var firstPageToRemove       = _pages.FirstOrDefault(p =>
            {
                var page = p.GetPage(frame);
                return(!page.IsSuspendable);
            });

            if (firstPageToRemove != null)
            {
                var index = pagesToSerialize.IndexOf(firstPageToRemove);
                pagesToSerialize        = _pages.Take(index).ToList();
                currentIndexToSerialize = index - 1;
            }

            var output = DataContractSerialization.Serialize(
                new MtFrameDescription
            {
                CurrentPageIndex = currentIndexToSerialize,
                PageStack        = pagesToSerialize
            },
                true, MtSuspensionManager.KnownTypes.ToArray());

            return(output);
        }
        /// <summary>Serializes and writes a setting object in a file (uses the DataContractSerializer).</summary>
        /// <typeparam name="TValue">The type of the setting value.</typeparam>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <param name="roaming">If set to <c>true</c> the setting is synchronized between devices.</param>
        /// <param name="extraTypes">The extra types.</param>
        /// <returns>The task.</returns>
        public static async Task SetSettingToFileAsync <TValue>(string key, TValue value, bool roaming = false, Type[] extraTypes = null)
        {
            var file = roaming ? await ApplicationData.Current.RoamingFolder.CreateFileAsync(key + ".settings", CreationCollisionOption.ReplaceExisting) :
                       await ApplicationData.Current.LocalFolder.CreateFileAsync(key + ".settings", CreationCollisionOption.ReplaceExisting);

            var xml = DataContractSerialization.Serialize(value, true, extraTypes);
            await FileIO.WriteTextAsync(file, xml, UnicodeEncoding.Utf8);
        }
 public static string Encrypt(DataTable dt)
 {
     if (dt == null)
     {
         return(null);
     }
     return(AesCryptography.Encrypt(Utils.Compress(DataContractSerialization.Serialize(dt))));
 }
示例#4
0
 public static void WriteDataContract(string Container, string DocumentType, string DocumentID, Object DataContract)
 {
     try
     {
         string Xml = DataContractSerialization.Serialize(DataContract);
         WriteAsync(Container, DocumentType, DocumentID, Xml);
     }
     catch (Exception ex) { LittleWatson.ReportException(ex); }
 }
示例#5
0
 public static void SaveToFile <TEntity, TIdentity>(this EntityContainer <TEntity, TIdentity> container, string fileName)
     where TEntity : class, IEntity <TIdentity>
 {
     FileUtilities.WriteAllText(fileName, DataContractSerialization.Serialize <List <TEntity> >(container.Collection.ToList()));
 }
 /// <summary>Adds an object which is serialized with <see cref="DataContractSerialization"/>. </summary>
 /// <typeparam name="T">The type of the object. </typeparam>
 /// <param name="key">The key. </param>
 /// <param name="obj">The object. </param>
 /// <param name="extraTypes">The additional types. </param>
 public void Set <T>(string key, T obj, Type[] extraTypes = null)
 {
     PageState[key] = DataContractSerialization.Serialize(obj, true, extraTypes);
 }