Compact Framework(Windows Mobile)中是否有 System.Runtime.Serialization.DataContractAttribute 的解决方法或替代方案

发布于 2024-12-09 05:11:13 字数 663 浏览 0 评论 0原文

我们正在向 Windows Mobile 客户端添加功能,以将数据发送到 .NET 服务。不幸的是,svcutil.exe 创建的 .cs 类为 Compact Framework 生成了无法使用的代码。 (紧凑框架中不存在该名称)

是否有替代或第 3 方类或解决方法或任何其他方式让移动应用程序连接到服务?

我们可以将 API/服务更改为紧凑框架友好型。我们是 CF 游戏(以及一般的 .NET)新手,我们不确定允许 CF 客户端的适当方法 - “开箱即用”方法对于桌面应用程序来说很好,但可惜的是,不适用于移动应用程序......

编辑

我尝试使用 netcfSvcUtil.exe 代替,但收到错误(我使用 svcutil.exe 时没有得到该错误)。我想这意味着创建的服务与紧凑框架不兼容?

不幸的是,我对此一无所知 - 但我认为传递数据的规范在平台之间没有相关性,并且可以在拖曳之间解决传输问题。我想这很天真......

关于如何解决这个问题有什么建议吗?我是否需要将服务端更改为移动/紧凑框架友好?

编辑

我收到的错误消息是:

错误:工具中发生错误。

错误:应用程序出错

We are adding functionality to a Windows Mobile Client to send data to a .NET service. Unfortunately the .cs class that svcutil.exe creates generates unusable code for Compact Framework. (that name does not exist in compact framework)

Is there a replacement or 3rd party class or workaround or any other way to get a mobile app to connect to a service?

We can change the API/service to be Compact-Framework friendly. We are new to the CF game (and .NET in general) We are not sure of the appropriate way to allow CF clients - the "out of the box" method was fine for desktop apps, but alas, not for mobile...

EDIT

I tried using netcfSvcUtil.exe instead but get an error (which I don't get with svcutil.exe). I suppose this means that the service created is just not compatible with compact framework?

I am woefully ignorant of this - but I would assume that the specs for passing data have no correlation between platforms and that the transport can be worked out between the tow. I suppose this is naive...

Any suggestions on how to fix this? Do I need to change the service side to be mobile/compact framework friendly?

EDIT

the error messages I get are:

Error: An Error occurred in the tool.

Error: Error in the application

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱,才寂寞 2024-12-16 05:11:13

正如我在评论中提到的,第一件事是确保我们使用基本 HTTP 绑定设置服务,以使其对 CF 友好。

As I mentioned in my comment, first thing is to make sure the service us setup with basic HTTP binding to make it CF-friendly.

水波映月 2024-12-16 05:11:13

检查wsdl中的soap版本,不确定,但我记得在CF中使用SOAP 1.2有问题。如果是这种情况,只需在配置文件中强制 WCF 使用 1.1 即可。

不管怎样,把错误信息贴出来吧。您描述的问题听起来很奇怪,因为通常当 wsdl 文件出现问题时,SVC 不会尝试生成任何代码。您确定您正在以生成 CF 代码的方式使用 svc 吗?
您是否尝试过在 Visual Studio 中使用“添加服务引用”?大多数时候这对我来说非常有效。

编辑:我再次阅读了您的问题。
- 您不能使用“普通”svcutil.exe 生成 CF 代码,请使用 netcfsvcutil.exe 版本
- 我真的建议使用 Visual Studio 添加服务引用,而不是命令行,然后向导会处理所有事情。
- 是的,Web 服务是技术独立的并受 CF 支持,只需确保使用 CF 支持的绑定(例如 basicHttpBinding)和 CF 支持的肥皂版本。

WCF<-> Compact Framework 场景一开始可能会令人困惑,但它确实运行良好。

Check the soap version in wsdl, not sure, but I can recall that there was a problem with using SOAP 1.2 in CF. If that is the case, just force WCF to use 1.1 in the config file.

Anyway, post the error message. The problem you describe sounds strange, because usually when there is a problem with wsdl file, SVC do not try to generate any code. Are you sure you are using svc in a way that produces CF code?
Have you tried using Add Service Reference in Visual Studio? That worked great for me most of the times.

Edit: I have read your question once more.
- You can't use 'normal' svcutil.exe to generate CF code, use netcfsvcutil.exe version
- Instead of command line I really recommend to use Visual Studio Add Service Reference, then wizard takes care of everything.
- Yes, web services are technology independent and supported by CF, just be sure to use bindings supported by CF (ex. basicHttpBinding) and soap version supported by CF.

WCF <-> Compact Framework scenario could be confusing at the beginning but it does work well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文