Пример #1
0
        RuntimePropertyInfo[] GetPropertiesByName(string name, BindingFlags bindingAttr, MemberListType listType, RuntimeType reflectedType)
        {
            var refh = new RuntimeTypeHandle(reflectedType);

            using (var namePtr = new Mono.SafeStringMarshal(name))
                using (var h = new Mono.SafeGPtrArrayHandle(GetPropertiesByName_native(namePtr.Value, bindingAttr, listType))) {
                    var n = h.Length;
                    var a = new RuntimePropertyInfo [n];
                    for (int i = 0; i < n; i++)
                    {
                        var ph = new Mono.RuntimePropertyHandle(h[i]);
                        a[i] = (RuntimePropertyInfo)MonoProperty.GetPropertyFromHandle(ph, refh);
                    }
                    return(a);
                }
        }