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); }
private static ISerializer <T> CreateSerializerInternal <T>(SerializationOptions serializationOp) { if (IsDebugEnabled) { log.Debug("ISerializer를 생성합니다. serializationOp=[{0}]", serializationOp); } ISerializer <T> serializer; switch (serializationOp.Method) { #if !SILVERLIGHT case SerializationMethod.Binary: serializer = new BinarySerializer <T>(); break; #endif case SerializationMethod.Json: serializer = new JsonByteSerializer <T>(); break; case SerializationMethod.Bson: serializer = new BsonSerializer <T>(); break; default: serializer = new BsonSerializer <T>(); break; } if (serializationOp.IsCompress) { serializer = new CompressSerializer <T>(serializer); } if (serializationOp.IsEncrypt) { serializer = new EncryptSerializer <T>(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); }
/// <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); }