Ok, некоторые унаследовали код: У меня есть с-структуру всей нагрузки разрешений:доступа структура VB.Net элемент по имени переменной
public structure Perms
dim writeStaff as Boolean
dim readStaff as Boolean
dim writeSupervisor as Boolean
dim readSuperVisor as Boolean
' ... and many more
End Structure
И я хочу функцию Cando который я создал так:
public function canDo(p as Perms, whichOne as String) as boolean
Dim b as System.Reflection.FieldInfo
b = p.GetType().GetField(whichOne)
return b
end function
и зову Cando с заранее заполненной структурой и «writeSupervisor» параметров
в отлаживать, б появляется как {Boolean writeSupervisor}, но когда я пытаюсь вернуться б как Boolean, я получаю сообщение об ошибке: значение типа e 'System.Reflection.FieldInfo' не может быть преобразован в 'Boolean'.
Любые идеи о том, как я могу «индексировать» в struct по имени элемента и значениям test/compare/return?
Работал очарование, спасибо. Именование: в качестве примера я просто набил старые имена. Я должен сказать, что info.GetValue (p), передавая исходный объект p в качестве параметра, кажется очень противоречивым. –
Отлично! Я понимаю, что вы имеете в виду, но вы должны помнить, что объект информации поля создается с использованием типа объекта rater, чем экземпляр объекта. Итак, 'p.GetType(). GetField (whichOne)' такой же, как 'GetType (Perms) .GetField (whichOne)'. –