コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        /// <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);
        }