Я хотел бы использовать свойство объектов в качестве ключа для словаря. Можно ли это сделать?
Конечная цель для этого - использовать это, чтобы видеть, заблокировано ли свойство в различных состояниях, в которых может находиться объект. Эти заблокированные значения не сохраняются, они просто существуют в бизнес-правилах для модели.
Идеальный код, чтобы увидеть, заблокировано ли поле, будет выглядеть так:
bool ageLocked = myObject.IsFieldLocked( x => x.Age);
bool nameLocked = myObject.IsFieldLocked(x => x.Name);
IsFieldLocked - метод расширения для типа myObject.
Я бы хотел, чтобы словарь находился в myObject и мог быть заменен различными вариантами словаря в зависимости от состояния объекта, например, был размещен заказ, или ожидающий порядок будет иметь другие определения словаря.
Надеюсь, я смогу использовать фабрику для создания различных вариантов словаря;
Factory.CreateAwaitingOrderLockedFields()
Factory.CreateOrderPlacedLockedFields()
Определение словаря, похожего на это
new Dictionary< ***MissingMagic***, bool>()
{
{ x => x.Age , true},
{ x => x.Name, false}
}
Цель состоит в том, чтобы избежать того, чтобы ключ был строкой, а ключ со строгой типизацией был гораздо более желательным.