svcutil 和指定字段

发布于 2024-11-15 11:13:08 字数 377 浏览 0 评论 0原文

我正在使用 svcutil 从 Web 服务生成数据合同。

svcutil /language:cs /noConfig /targetclientversion:Version35 
        /out:Generated\ProductService.cs http://example.com/ProductService.svc?wsdl

生成的字段如下所示:

private System.Nullable<System.DateTime> createdField;
private bool createdFieldSpecified;

如何使字段既可为空又具有指定字段?

I am generating a datacontract with svcutil from a webservice.

svcutil /language:cs /noConfig /targetclientversion:Version35 
        /out:Generated\ProductService.cs http://example.com/ProductService.svc?wsdl

The fields generated looks like this:

private System.Nullable<System.DateTime> createdField;
private bool createdFieldSpecified;

How can the fields be both nullable and have a specified field?

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

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

发布评论

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

评论(2

三生一梦 2024-11-22 11:13:08

这取决于源 Wsdl。我打赌有这样的东西(不确定语法):

<xsd:element name="created" type="xsd:datetime" minOccurs="0" xsd:nil="true" />

svcutil.exe使用nillable来生成Nullable<>字段,并且minOccurs 生成字段 + 指定的组合。

我还打赌 WSDL 不是 .Net 生成的 WSDL!

it depends on the source Wsdl. I bet there is something this (not sure of the syntax):

<xsd:element name="created" type="xsd:datetime" minOccurs="0" xsd:nil="true" />

svcutil.exe use nillable to produce a Nullable<> field, and minOccurs to produce a field + specified combination.

I also bet the WSDL is not a .Net generated WSDL !

桜花祭 2024-11-22 11:13:08

类生成由 Web 服务的 XSD 模式驱动。

为了生成可为空的字段。该字段应标记为nillable

<xs:element minOccurs="0" maxOccurs="1" name="created" type="xs:dateTime" nillable="true" />

XML 将如下所示。

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <created xsi:nil="true" />
</root>

我相信您的架构中的该字段如下所示:

<xs:element minOccurs="0" maxOccurs="1" name="created" />

如果 createdFieldSpecified = false,它将完全省略该元素:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</root>

底线:应更新 Web 服务架构,以便使用 生成可为空的字段>svcutil

The class generation is driven by XSD schema of the web service.

In order to generate nullable fields. The field should be marked as nillable.

<xs:element minOccurs="0" maxOccurs="1" name="created" type="xs:dateTime" nillable="true" />

The XML will look like this.

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <created xsi:nil="true" />
</root>

I believe that this field in your schema looks like this:

<xs:element minOccurs="0" maxOccurs="1" name="created" />

and it would omit the element completely if createdFieldSpecified = false:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</root>

The bottom line: web service schema should be updated in order to generate nullable fields with svcutil.

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