Принудительная ошибка синтаксиса в автоматическом методе ToString()

По умолчанию в C# все классы наследуют ToString() метод. У меня проблема в том, что на работе мы используем automapper сопоставить некоторые доменные объекты с интерфейсом. Я продолжаю видеть код, очень похожий на следующий sudo.

string:mapToclass.name <- mapFromClass

проблема в том, что, хотя я ожидаю, что строка будет отображена из, мне отправляется тип с автоматическим методом для строки. Правильный код должен быть похож на следующее.

string:mapToclass.name <- mapFromClass.name

К сожалению, из-за автоматического наследования ToString Метод оба из них будут компилироваться и запускаться. Хотя я, возможно, переопределил строку, чтобы выдать не реализованное исключение, но это не очень хороший дизайн и ломает lsp, плюс он все равно не уловит ошибку во время компиляции, что было бы более идеальным.

Любые идеи, как я мог бы обеспечить это?

1 ответ

Решение

Если я правильно читаю, вы можете вручную указать отображение в AutoMapper для такого случая.

Mapper.CreateMap<MapFromClass, MapToClass>().ForMember(dest => dest.name, opt => opt.MapFrom(src => src.name));

Это явным образом отобразит свойство из MapFromClass в MapToClass. Больше информации по этому вопросу.

Другие вопросы по тегам