Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要映射类来解析新添加的字段_C#_Design Patterns_Mapping_N Tier Architecture - Fatal编程技术网

C# 需要映射类来解析新添加的字段

C# 需要映射类来解析新添加的字段,c#,design-patterns,mapping,n-tier-architecture,C#,Design Patterns,Mapping,N Tier Architecture,我正在做一个c#项目,它有一些带有数据类型封装的层。但每当我在顶层(比如应用程序服务)的模型中添加一个字段时,我都需要记住我还应该在哪里更改以使我的应用程序正常工作 我正在寻找一种模式或方法,以防止在不更新映射类的情况下出现潜在的逻辑错误。我认为,如果我可以要求我的映射类解析新添加的字段(例如,如果未解析,则抛出异常),那么问题将得到解决 有什么解决办法吗?或者我如何实现我自己的想法?您可以使用类似automapper的库,如果不是所有属性都正确映射(),它将给您一个错误,而且它还可以避免您编写

我正在做一个c#项目,它有一些带有数据类型封装的层。但每当我在顶层(比如应用程序服务)的模型中添加一个字段时,我都需要记住我还应该在哪里更改以使我的应用程序正常工作

我正在寻找一种模式或方法,以防止在不更新映射类的情况下出现潜在的逻辑错误。我认为,如果我可以要求我的映射类解析新添加的字段(例如,如果未解析,则抛出异常),那么问题将得到解决


有什么解决办法吗?或者我如何实现我自己的想法?

您可以使用类似automapper的库,如果不是所有属性都正确映射(),它将给您一个错误,而且它还可以避免您编写映射每个对象的所有代码


如果您不想使用库,请确保在工厂中封装映射,这样至少代码是集中的,并且易于发现,但这仍然容易出错。使用构造函数而非构造函数也有助于在编译时查找映射。

谢谢。AutoMapper看起来不错。我读了它的一些文档,但我有点困惑如何正确使用它。你知道在桌面项目中使用AutoMapper的在线示例吗?使用构造函数也有助于检测映射。但是当类中有大量字段时,它似乎不是一个好的选择。