public void Compress_BsonSerializer() { var serializer = new CompressSerializer<UserInfo>(new BsonSerializer<UserInfo>()); var serializedUser = serializer.Serialize(user); var deserializedUser = serializer.Deserialize(serializedUser); Assert.AreEqual(user.FirstName, deserializedUser.FirstName); Assert.AreEqual(user.FavoriteMovies.Count, user.FavoriteMovies.Count); }
internal static ISerializer GetSerializer(bool? compress, bool? security) { ISerializer result = new CloneSerializer(); if(compress.GetValueOrDefault(false)) result = new CompressSerializer(result); if(security.GetValueOrDefault(false)) result = new EncryptSerializer(result); return result; }
/// <summary> /// 원하는 <see cref="ISerializer"/>를 빌드합니다. /// </summary> /// <param name="compress">압축할 것인가?</param> /// <param name="security">보안을 적용할 것인가?</param> /// <returns></returns> public static ISerializer GetSerializer(bool compress, bool security) { if(IsDebugEnabled) log.Debug("Create Serializer. compress=[{0}], security=[{1}]", compress, security); // ISerializer serializer = new BinarySerializer(); ISerializer serializer = new CloneSerializer(); if(compress) serializer = new CompressSerializer(serializer); if(security) serializer = new EncryptSerializer(serializer); return serializer; }
public void XmlSerialize_With_Encryption_Compress([Values(typeof(SharpBZip2Compressor), typeof(GZipCompressor), typeof(DeflateCompressor), typeof(SevenZipCompressor))] Type compressorType, [Values(typeof(AriaSymmetricEncryptor), typeof(RC2SymmetricEncryptor), typeof(TripleDESSymmetricEncryptor))] Type encryptorType) { var xmlSerializer = XmlSerializer<List<User>>.Instance; var compressor = (ICompressor)ActivatorTool.CreateInstance(compressorType); var encryptor = (ISymmetricEncryptor)ActivatorTool.CreateInstance(encryptorType); var serializer = new CompressSerializer<List<User>>(new EncryptSerializer<List<User>>(xmlSerializer, encryptor), compressor); var users = GetSampleUsers(10); var usersData = serializer.Serialize(users); var deserializedUsers = serializer.Deserialize(usersData); CollectionAssert.AreEqual(users, deserializedUsers); }