Пример #1
0
        public Comparer(CompareOption[] compareOptions, Func <Type, MemberInfo, int> membersOrder = null)
        {
            Type           = typeof(T);
            CompareOptions = compareOptions;
            MembersOrder   = membersOrder;

            CompareOption.CheckCompareOptions(Type, compareOptions, membersOrder);

            LambdaCompare = CreateCompareMethod();
            compare       = LambdaCompare.Compile();
        }
Пример #2
0
        public DataComparer(Type type, CompareOption[] compareOptions, Func <Type, MemberInfo, int> membersOrder = null)
        {
            Type     = type;
            DataType = typeof(Data <>).MakeGenericType(type);

            CompareOption.CheckCompareOptions(type, compareOptions, membersOrder);
            CompareOptions = compareOptions;
            MembersOrder   = membersOrder;

            LambdaDataComparer = CreateDataCompareMethod();
            dataComparer       = LambdaDataComparer.Compile();
        }
Пример #3
0
        public EqualityComparer(CompareOption[] compareOptions, Func <Type, MemberInfo, int> membersOrder = null)
        {
            Type           = typeof(T);
            CompareOptions = compareOptions;
            CompareOption.CheckCompareOptions(Type, compareOptions, membersOrder);

            MembersOrder = membersOrder;

            LambdaEquals = CreateEquals();
            equals       = LambdaEquals.Compile();

            LambdaGetHashCode = CreateGetHashCode();
            getHashCode       = LambdaGetHashCode.Compile();
        }
Пример #4
0
        public DataEqualityComparer(Type type, CompareOption[] compareOptions, Func <Type, MemberInfo, int> membersOrder = null)
        {
            Type = type;

            CompareOption.CheckCompareOptions(type, compareOptions, membersOrder);

            CompareOptions = compareOptions;
            MembersOrder   = membersOrder;

            LambdaEquals = CreateEqualsMethod();
            equals       = LambdaEquals.Compile();

            LambdaGetHashCode = CreateGetHashCodeMethod();
            getHashCode       = LambdaGetHashCode.Compile();
        }