alielie
2026-09-10 9ec80cafc23f5ee3278cacce3c9f86f4087b435a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Reflection;
 
namespace DynamicExpresso.Reflection
{
    internal class IndexerData : MethodData
    {
        public readonly PropertyInfo Indexer;
 
        public IndexerData(PropertyInfo indexer)
        {
            Indexer = indexer;
 
            var method = indexer.GetGetMethod();
            if (method != null)
            {
                Parameters = method.GetParameters();
            }
            else
            {
                method = indexer.GetSetMethod();
                Parameters = RemoveLast(method.GetParameters());
            }
        }
 
        private static T[] RemoveLast<T>(T[] array)
        {
            var result = new T[array.Length - 1];
            Array.Copy(array, 0, result, 0, result.Length);
            return result;
        }
    }
}