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; }
public CompareByPropertyReference(PropertyDefinition self, IComparableTypeReference memberTypeReference) : base(self, memberTypeReference) { PropertyDefinition = self; }