Использование 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]
должен вернуть текущее значение свойства.