注意:这不是处理 ServiceStack 和 WebAPI 之间选择的几个问题的重复。
我正在尝试确定在 ASP.NET Web 应用程序中使用 ServiceStack 的程度:
选项 A:通过放弃 MVC 控制器并用基于 ServiceStack 的服务和 Razor 视图替换它们来全面使用 ServiceStack。
选项 B:使用支持 ServiceStack 的 MVC 控制器以获得更好的性能和可扩展性。
A 的明显优势是它在构建我的观点时为我提供了额外的灵活性。但是,我担心两件事:
与 MVC 控制器处理的纯 C# 对象相比,ServiceStack 执行的与 Json 或 Xml 之间的请求/响应 DTO 的所有序列化/反序列化必然会以性能为代价。
在处理复杂的对象图时,序列化可能有点不稳定。例如,在涉及循环引用的情况下,
Parent.Child <-> Child.Parent
必须使用 IgnoreDataMember 属性,否则序列化将破坏堆栈。此外,有时反序列化会引发难以诊断的晦涩的“未设置对象引用”错误。
有人对这个困境有任何想法吗?