Могу ли я скрыть значения конфиденциальных свойств из автоматически созданных методов записи С# 9? ⇐ C#
-
Гость
Могу ли я скрыть значения конфиденциальных свойств из автоматически созданных методов записи С# 9?
Я создаю систему управления пользователями с хостом домена, которому я отправляю команды. Команды являются record как из-за свойств init, так и из-за сгенерированных вспомогательных методов. Однако я быстро столкнулся с проблемой с этим подходом, например. LoginUserCommand.
command.ToString() возвращает что-то вроде этого (добавлено форматирование):
LoginUserCommand { Идентичность = 10000000-1111-2222-3333-444444444444, Идентификатор корреляции = 20000000-1111-2222-3333-444444444444, Временная метка = 2013-07-26T16:45:20Z, IssuingUserId = 30000000-1111-2222-3333-444444444444, EntityId = a80c081c-cf91-4304-9baa-20fb20c8d9f7, IP-адрес = 127.0.0.1, Пароль = ThisIsAPr0blem } Очевидно, что я могу обойти это, например. переопределение ToString() в классах, где это важно. Наивно, я мог бы сделать что-то вроде
публичная строка переопределения ToString() { вернуть базу.ToString() .Replace(Пароль, "********"); } Но мне интересно, не упустил ли я какой-то встроенный способ, позволяющий сгенерированному методу ToString() маскировать значение свойства Password.
р>
Я создаю систему управления пользователями с хостом домена, которому я отправляю команды. Команды являются record как из-за свойств init, так и из-за сгенерированных вспомогательных методов. Однако я быстро столкнулся с проблемой с этим подходом, например. LoginUserCommand.
command.ToString() возвращает что-то вроде этого (добавлено форматирование):
LoginUserCommand { Идентичность = 10000000-1111-2222-3333-444444444444, Идентификатор корреляции = 20000000-1111-2222-3333-444444444444, Временная метка = 2013-07-26T16:45:20Z, IssuingUserId = 30000000-1111-2222-3333-444444444444, EntityId = a80c081c-cf91-4304-9baa-20fb20c8d9f7, IP-адрес = 127.0.0.1, Пароль = ThisIsAPr0blem } Очевидно, что я могу обойти это, например. переопределение ToString() в классах, где это важно. Наивно, я мог бы сделать что-то вроде
публичная строка переопределения ToString() { вернуть базу.ToString() .Replace(Пароль, "********"); } Но мне интересно, не упустил ли я какой-то встроенный способ, позволяющий сгенерированному методу ToString() маскировать значение свойства Password.
р>
Мобильная версия