Использование FastMember

У меня есть требование извлечь все общедоступные свойства чтения-записи, которые не перечисляются, если они не являются строкой. В настоящее время это делается путем рефлексии и интереса, можно ли это сделать с помощью FastMember.

Я попробовал что-то вроде приведенного ниже кода, но он не делает то, что я хочу. Могу ли я сделать это с текущей версией FastMember?

Ура,
Berryl

protected void LoadCache(IHaveEditableStateProperties originator) {
    var type = originator.GetType();
    _accessor = TypeAccessor.Create(type);

    var members = _accessor.GetMembers();
    _editableState = new Dictionary<string, object>();

        foreach (var member in members) {
            if(member.Type == typeof(PropertyInfo)) {
                _editableState.Add(member.Name, _accessor[originator, member.Name]);
            }
        }
    }
    ...
}

1 ответ

Как я понимаю, member.Type как возвращено из FastMember тип возврата свойства или метода. Никогда не должно быть PropertyInfo как вы проверяете в своем коде. _accessor[originator, member.Name] должен вернуть текущее значение свойства.

Другие вопросы по тегам