コード例 #1
0
        public void SpecificChildInheritance()
        {
            var first = new ChildClass {
                Name = "Key"
            };
            var instance = new Container {
                First = first, Second = first
            };
            var container = new ConfigurationContainer();

            container.ConfigureType <ChildClass>()
            .EnableReferences(x => x.Name);
            var support = new SerializationSupport(container);
            var actual  = support.Cycle(instance);

            actual.First.Should()
            .NotBeNull()
            .And.BeOfType <ChildClass>()
            .And.BeSameAs(actual.Second);
        }
コード例 #2
0
        public void ConfigureEncryptDifferenetOrder()
        {
            var container = new ConfigurationContainer();

            container.UseAutoFormatting();


            Assert.Null(container.Root.Find <EncryptionExtension>());
            container.ConfigureType <TestClassWithEncryptedData>()
            .Member(p => p.Password, x => x.Encrypt())
            .Member(p => p.Salary)
            .Encrypt();

            container.UseEncryptionAlgorithm();

            var extension = container.Root.Find <EncryptionExtension>();

            Assert.NotNull(extension);
            var type = container.GetTypeConfiguration(typeof(TestClassWithEncryptedData));

            Assert.NotNull(type);

            var member   = type.Member(nameof(TestClassWithEncryptedData.Salary));
            var property = ((ISource <MemberInfo>)member).Get();

            Assert.NotNull(property);
            Assert.Contains(property, extension.Registered);

            const int salary   = 6776;
            var       instance = new TestClassWithEncryptedData {
                Salary = salary
            };
            var actual = new SerializationSupport(container).Assert(instance, @"<?xml version=""1.0"" encoding=""utf-8""?><TestClassWithEncryptedData Salary=""Njc3Ng=="" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.TestObject;assembly=ExtendedXmlSerializer.Tests"" />");

            Assert.Equal(salary, actual.Salary);
        }