【问题标题】:Share types/models from service reference to client从服务参考共享类型/模型到客户端
【发布时间】:2021-09-08 06:08:57
【问题描述】:

我正在开发一个带有 web api 后端的 blazor webassembly 程序。后端使用 WCF 服务引用。 如何与 webassembly 程序共享 WCF 服务引用生成的类型/模型?

【问题讨论】:

    标签: c# wcf asp.net-web-api blazor webassembly


    【解决方案1】:

    您可以尝试在不同的项目中创建客户端代理。 VS里面的选项我不记得了,你可能得用命令行工具。

    但我不会。

    生成的代码通常不是最漂亮的,其中包含许多您在 SPA 中不需要或不需要的元数据、依赖项和属性。

    所以考虑在共享项目中写一层DTO类,使用AutoMapper进行数据转换。

    DTO 是数据传输对象,是客户端和服务器之间的共享代码。在您的客户端中,您可以将它们用作模型和/或视图模型。

    【讨论】:

    • +1。 SPA 不需要知道远程服务的复杂性,也不需要处理版本更改。它也不应该使用浏览器的有限资源将 DTO 转换为它可以使用的东西。
    • 关于版本控制,航空旅行行业的某家公司在使用 Node.js 生成 SOAP 响应时考虑了 XSD 的免费文档。因此,由于拼写错误或字符串元素变成数组,实际响应可能会在没有通知的情况下发生变化(它们有每月发布周期)。对于一个糟糕的 SPA 来说,这不是工作
    • 谢谢!因此,如果我理解正确,我应该在共享项目中定义模型并在我的模型和后端的 WCF 类型之间创建映射?
    • 是的,完全正确。您可以使 DTO 适合任务。
    猜你喜欢
    • 2021-03-10
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多