コード例 #1
0
 public object Convert(object value, Type fromType, Type toType)
 {
     if (fromType == typeof(String)) // Convert from binary to object
     {
         for (int index = 0; index < _types.Count; index++)
         {
             Type type = _types[index];
             if ((toType == type) || (toType.IsSubclassOf(type) && _includeSubTypes[index]))
             {
                 byte[] bytes = System.Convert.FromBase64String((String)value);
                 if (_compression)
                 {
                     MemoryStream stream = new MemoryStream(DeflateStreamCompression.DecompressBytes(bytes));
                     return(BinarySerializationUtilities.DeserializeFromMemoryStream(stream));
                 }
                 else
                 {
                     MemoryStream stream = new MemoryStream(bytes);
                     return(BinarySerializationUtilities.DeserializeFromMemoryStream(stream));
                 }
             }
         }
     }
     else if (toType == typeof(String))  // Convert from object to binary
     {
         for (int index = 0; index < _types.Count; index++)
         {
             Type type = _types[index];
             if ((fromType == type) || (fromType.IsSubclassOf(type) && _includeSubTypes[index]))
             {
                 MemoryStream stream = BinarySerializationUtilities.SerializeToMemoryStream(value);
                 if (_compression)
                 {
                     byte[] bytes = stream.GetBuffer();
                     return(System.Convert.ToBase64String(DeflateStreamCompression.CompressBytes(bytes)));
                 }
                 else
                 {
                     byte[] bytes = stream.GetBuffer();
                     return(System.Convert.ToBase64String(bytes));
                 }
             }
         }
     }
     throw new NotImplementedException();
 }
コード例 #2
0
        /// <summary>
        /// Converts from base 64 string, decompresses if required
        /// </summary>
        /// <param name="base64EncodedData"></param>
        /// <param name="compression"></param>
        /// <returns></returns>
        private static string ConvertFromBase64(string base64EncodedData, bool compression)
        {
            var bytes = System.Convert.FromBase64String(base64EncodedData);

            return(compression ? System.Text.Encoding.UTF8.GetString(DeflateStreamCompression.DecompressBytes(bytes)) : System.Text.Encoding.UTF8.GetString(bytes));
        }
コード例 #3
0
        /// <summary>
        /// Converts to base 64 string, compresses if required
        /// </summary>
        /// <param name="plainText"></param>
        /// <param name="compression"></param>
        /// <returns></returns>
        private static string ConvertToBase64(string plainText, bool compression)
        {
            var bytes = System.Text.Encoding.UTF8.GetBytes(plainText);

            return(compression ? System.Convert.ToBase64String(DeflateStreamCompression.CompressBytes(bytes)) : System.Convert.ToBase64String(bytes));
        }