Esempio n. 1
0
        // Some example code: https://docs.microsoft.com/en-us/dotnet/standard/serialization/examples-of-xml-serialization
        ConfigMessageSerializerClass CreateClassInfo()
        {
            ConfigMessageSerializerClass messageSerializerClassInfo = new ConfigMessageSerializerClass();
            ConfigClassInfo classInfo = new ConfigClassInfo();

            classInfo.AssemblyName  = Assembly.GetExecutingAssembly().FullName;
            classInfo.ClassFullName = typeof(SimpleXmlTestClass).FullName;

            ConfigPropertyInfo propertyInfo1 = new ConfigPropertyInfo();

            propertyInfo1.Name = "Property1";
            propertyInfo1.Attributes.Add(new MessagePropertyAttribute()
            {
                PrepadCharacter = 'T'
            });
            propertyInfo1.Attributes.Add(new CalculatedLengthResultAttribute());
            //propertyInfo1._messagePropertyAttribute.MessageLengthType = MessageLengthTypes.RestOfMessage;
            //propertyInfo1._messagePropertyAttribute.PrepadCharacter = 'T';
            //propertyInfo1.AuthenticationClass = typeof(int);
            classInfo.Properties.Add(propertyInfo1);

            ConfigPropertyInfo propertyInfo2 = new ConfigPropertyInfo();

            propertyInfo2.Name = "Property2";
            classInfo.Properties.Add(propertyInfo2);

            ConfigPropertyInfo propertyInfo3 = new ConfigPropertyInfo();

            propertyInfo3.Name = "Property3";
            var property3MessagePropertyAttribute = new MessagePropertyAttribute();

            property3MessagePropertyAttribute.IsBcd = true;
            //property3MessagePropertyAttribute.IsAuthenticationField = false;
            //property3MessagePropertyAttribute.ExcludeFromAuthentication = true;
            property3MessagePropertyAttribute.Length                 = 20;
            property3MessagePropertyAttribute.Format                 = "YYYYMMDDHHMMSS";
            property3MessagePropertyAttribute.BlobType               = BlobTypes.None;
            property3MessagePropertyAttribute.VariableLength         = true;
            property3MessagePropertyAttribute.MinLength              = 1;
            property3MessagePropertyAttribute.MaxLength              = 18;
            property3MessagePropertyAttribute.MinimizeVariableLength = true;
            //property3MessagePropertyAttribute.ExcludeFromLength = false;
            property3MessagePropertyAttribute.PrepadCharacter = ' ';
            //property3MessagePropertyAttribute.MessageLengthType = MessageLengthTypes.RestOfMessage;
            //property3MessagePropertyAttribute.AuthenticationClass = typeof(AuthenticationCrc32);
            propertyInfo3.Attributes.Add(property3MessagePropertyAttribute);
            propertyInfo3.Attributes.Add(new CalculatedLengthResultAttribute()
            {
                Exclude = false
            });
            propertyInfo3.Attributes.Add(new CalculatedAuthenticationResultAttribute(typeof(CalculatorAuthenticationCrc32)));
            classInfo.Properties.Add(propertyInfo3);

            messageSerializerClassInfo.ClassInfo = classInfo;

            return(messageSerializerClassInfo);
        }
Esempio n. 2
0
        void VerifyClassInfo(ConfigMessageSerializerClass classInfoToVerify, ConfigMessageSerializerClass classInfoExpected)
        {
            Assert.That(classInfoToVerify.ClassInfo, Is.Not.Null);
            Assert.That(classInfoToVerify.ClassInfo.AssemblyQualifiedName, Is.EqualTo(classInfoExpected.ClassInfo.AssemblyQualifiedName));
            VerifyMessageSerializedClassAttribute(classInfoToVerify.ClassInfo.MessageClassAttribute, classInfoExpected.ClassInfo.MessageClassAttribute, classInfoToVerify.ClassInfo.AssemblyQualifiedName);

            Assert.That(classInfoToVerify.ClassInfo.Properties, Is.Not.Null);
            Assert.That(classInfoToVerify.ClassInfo.Properties.Count, Is.EqualTo(classInfoExpected.ClassInfo.Properties.Count));

            for (int index = 0; index < classInfoToVerify.ClassInfo.Properties.Count; ++index)
            {
                ConfigPropertyInfo propertyInfoToVerify = classInfoToVerify.ClassInfo.Properties[index];
                ConfigPropertyInfo propertyInfoExpected = classInfoExpected.ClassInfo.Properties[index];

                Assert.That(propertyInfoToVerify.Name, Is.EqualTo(propertyInfoExpected.Name));
                //VerifyMessageSerializedPropertyAttribute(propertyInfoToVerify._messagePropertyAttribute, propertyInfoExpected._messagePropertyAttribute, string.Format("{0}::Index{1}", classInfoToVerify.ClassInfo, index));
                VerifyMessageSerializedPropertyAttribute(propertyInfoToVerify.GetFirstAttributeOfType <MessagePropertyAttribute>() ?? new MessagePropertyAttribute(), propertyInfoExpected.GetFirstAttributeOfType <MessagePropertyAttribute>() ?? new MessagePropertyAttribute(), string.Format("{0}::Index{1}", classInfoToVerify.ClassInfo, index));
                VerifyCalculatedLengthResultAttribute(propertyInfoToVerify.GetFirstAttributeOfType <CalculatedLengthResultAttribute>() ?? new CalculatedLengthResultAttribute(), propertyInfoExpected.GetFirstAttributeOfType <CalculatedLengthResultAttribute>() ?? new CalculatedLengthResultAttribute(), string.Format("{0}::Index{1}", classInfoToVerify.ClassInfo, index));
                VerifyCalculatedAuthenticationResultAttribute(propertyInfoToVerify.GetFirstAttributeOfType <CalculatedAuthenticationResultAttribute>() ?? new CalculatedAuthenticationResultAttribute(typeof(CalculatorAuthenticationCrc16)), propertyInfoExpected.GetFirstAttributeOfType <CalculatedAuthenticationResultAttribute>() ?? new CalculatedAuthenticationResultAttribute(typeof(CalculatorAuthenticationCrc16)), string.Format("{0}::Index{1}", classInfoToVerify.ClassInfo, index));
            }
        }