コード例 #1
0
        internal static string SerializePageSettings(PageSettings pageSettings)
        {
            var str        = string.Empty;
            var retryCount = 1;

            if (pageSettings != null)
            {
                while (retryCount <= 2)
                {
                    try
                    {
                        using (var stream = new MemoryStream())
                        {
                            var serializer = new XmlSerializer(pageSettings.GetType());
                            serializer.Serialize(stream, pageSettings);
                            if (stream.Length > 0)
                            {
                                stream.Seek(0, SeekOrigin.Begin);
                                using (StreamReader reader = new StreamReader(stream))
                                {
                                    str = reader.ReadToEnd();
                                }

                                break;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        retryCount++;
                        if (retryCount > 2)
                        {
                            var message       = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                            var exceptionType = ex.InnerException != null?ex.InnerException.GetType().ToString() : ex.GetType().ToString();

                            // TODO Error Log
                        }
                    }
                }
            }

            return(str);
        }