Как я использую отражение .NET для поиска свойства, по имени игнорирующего регистр?

Используйте приведенные ниже фрагменты и интерполяцию строк для выполнения работы:

const classnames = someCondition? "color-cont black": "color-cont black newStyle others";
<div className=`$(classnames)` ...>
5
задан mrbradleyt 10 November 2008 в 22:15
поделиться

2 ответа

Необходимо указать BindingFlags.Public | BindingFlags.Instance также:

using System;
using System.Reflection;

public class Test
{
    private int foo;

    public int Foo { get { return foo; } }

    static void Main()
    {
        var prop = typeof(Test).GetProperty("foo",
                                            BindingFlags.Public
                                            | BindingFlags.Instance 
                                            | BindingFlags.IgnoreCase);
        Console.WriteLine(prop);
    }
}

(Когда Вы не указываете флагов, общественности, экземпляр и статичный обеспечиваются по умолчанию. Если Вы указываете его явно, я предлагаю, чтобы Вы только указали один из экземпляра или статичный, если Вы знаете то, в чем Вы нуждаетесь.)

14
ответ дан 18 December 2019 в 10:50
поделиться

Попытайтесь добавить объем BindingFlags как так:

var prop = Backend.GetType().GetProperty(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase);

Это работает на меня.

2
ответ дан 18 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: