Я делаю аудиторский класс. Для этого у меня есть два объекта одного типа, но я не знаю, какой тип.
Для аудита мне просто нужны свойства, которые имеют смысл в читаемом человеком документе.
Итак, я просто хочу имя (или основной идентификатор) пользовательских объектов.
Пример: если у меня есть отдел, и я меняю менеджера. Мне нужно войти только имя нового менеджера. "Менеджер: Джон - Билл"
Так, как я могу перечислить только основные свойства?
- подробнее о
Для определения основного идентификатора я использую customAttribute:
[audit]
public string Name { get; set; }
Итак, я подумываю выбрать их из списка, который кроме примитивов, с:
var propsOfObject = objectToAudit.GetType().GetProperties();
foreach (PropertyInfo propertyInfo in propsOfObejct) {
IEnumerable<FieldInfo> props = propertyInfo.GetType().GetFields().Where(p => Attribute.IsDefined(p, typeof (AuditAttribute)));
if (props.Count() > 0) {
dicWithNameValue.Add(propertyInfo.GetType().FullName, props.First().GetValue(objectToAudit).ToString());
}
}
правильный путь?