public ComparableTypeDefinition(IComparableTypeReference typeReference, IEnumerable <ICompareByMemberDefinition> members)
        {
            _members = members.ToList();

            _typeDefinition = typeReference.TypeDefinition;
            _typeReference  = typeReference.TypeReference;
        }
        protected CompareByMemberReference(IMemberDefinition self, IComparableTypeReference memberTypeReference)
        {
            MemberTypeReference = memberTypeReference;
            var compareBy = self.CustomAttributes
                            .Single(x => x.AttributeType.Name == nameof(CompareByAttribute));

            if (compareBy.HasProperties)
            {
                Priority = (int)compareBy.Properties
                           .Single(x => x.Name == nameof(CompareByAttribute.Priority))
                           .Argument.Value;
            }
            else
            {
                // If the property has a default value, "HasProperties" will be false.
                Priority = CompareByAttribute.DefaultPriority;
            }
        }
 public CompareByFieldReference(FieldDefinition self, IComparableTypeReference memberTypeReference) :
     base(self, memberTypeReference)
 {
     FieldDefinition = self;
 }
Example #4
0
 public CompareByPropertyReference(PropertyDefinition self, IComparableTypeReference memberTypeReference) :
     base(self, memberTypeReference)
 {
     PropertyDefinition = self;
 }