在自动ToString()方法上强制语法错误

时间:2013-09-05 16:28:19

标签: c# inheritance tostring liskov-substitution-principle

默认情况下,在c#中,所有类都继承ToString()方法。我遇到的问题是,在工作中我们使用automapper将一些域对象映射到前端。我一直看到代码与以下sudo非常相似。

string:mapToclass.name <- mapFromClass

问题在于,虽然我希望从我发送的字符串映射到一个带有自动到字符串方法的类型。正确的代码应类似于以下内容。

string:mapToclass.name <- mapFromClass.name

不幸的是,由于ToString方法的自动继承,这两个方法都将编译并运行。我可能会覆盖字符串以抛出一个未实现的异常,但它不是一个好的设计并且会破坏lsp,而且它仍然不会在编译时捕获错误,这将更加理想。

我有什么想法可以强制执行此操作?

1 个答案:

答案 0 :(得分:0)

如果我正确读取了这个,那么您可以在AutoMapper中为此类情况手动指定映射。

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

这将从MapFromClass上的属性显式映射到MapToClass。 More information on this question.