匿名类型是 DTO/POCO 更好的选择吗?

Is anonymous type better choice to DTO/POCO?

通过 Web 请求返回 json 数据使我们能够使其更轻、更快。所以我想知道,return 哪个更好:匿名对象还是 DTO?

我读到了一些关于架构的担忧:http://www.codeproject.com/Articles/1018716/Replacing-DTO-with-Anonymous-object 和 DTO 的使用:Entity Framework is Too Slow. What are my options? 但这不是我的重点,我想知道什么是 return 网络请求更轻更快。

谢谢!

就 "weight" 或性能而言应该没有显着差异。匿名对象 class 就像 DTO,它们只是在设计时没有定义,它们是由编译器定义的。

使用匿名类型的缺点是它们在定义它的方法之外不是类型安全的。它在返回 JSON 时 "works" 因为它使用反射来获取类型的所有属性,就像 "normal" class 一样。

匿名类型的好处纯粹是编码效率 - 您不必定义 "type" 以在单个方法中使用。但是,如果该类型将由该方法公开(无论是直接公开还是通过 JSON),那么您应该为其定义一个类型。