- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的困境,svcutil 命令仍然为标记为 xsd:all 的复杂内容生成 Order Named 参数。
这是我的示例架构。
<xsd:complexType name="SpecialReportEntityRow" >
<xsd:complexContent>
<xsd:extension base="list:BaseRowExt">
<xsd:all>
<xsd:element name="customerName" type="xsd:string" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="Id" type="xsd:long" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="certificateType" type="xsd:string" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="certificateValidity" type="xsd:long" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="item" type="xsd:long" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="description" type="xsd:string" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="quantity" type="xsd:long" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="startDate" type="xsd:dateTime" form="unqualified" minOccurs="0" maxOccurs="1" />
<xsd:element name="endDate" type="xsd:dateTime" form="unqualified" minOccurs="0" maxOccurs="1" />
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
对于上面的模式,这里是代码片段生成的代理。请看它在属性中生成订单命名参数。尽管架构包含 xsd:all 内容。
主要问题是服务发送数据的顺序是字母顺序或任何随机顺序,因此模式具有 xsd:all 而不是 xsd:sequence。现在在运行时,如果我们有订单命名参数,对象 SpecialReportEntityRow 被初始化为默认值而不是服务数据。例如。 CertificateType 属性初始化为空字符串,CertificateValidaty 初始化为 0,所有属性都初始化为其默认值。运行时不会抛出反序列化错误。
如果我通过删除 XmlElementAttribute Order 命名参数来修改代理类,那么在运行时对象 SpecialReportEntityRow 将获得正确的服务数据。
谁能指导我如何解决这个问题,我不想修改代理类,为什么 svcutil 不考虑 xsd:all。
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string customerName
{
get
{
return this.customerNameField;
}
set
{
this.customerNameField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public long orgId
{
get
{
return this.orgIdField;
}
set
{
this.orgIdField = value;
}
}
示例响应 XML:
<ns5:rows xsi:type="ns7:SpecialReportEntityRow">
<certificateType>Dummy Type 1</certificateType>
<certificateValidity>2</certificateValidity>
<customerName>Customer1</customerName>
<description>Revocations by Reason - Unused</description>
<item>17</item>
</ns5:rows>
<ns5:rows xsi:type="ns7:SpecialReportEntityRow">
<certificateType>Dummy Type 2</certificateType>
<certificateValidity>2</certificateValidity>
<customerName>Custome1</customerName>
<description>Revocations by Reason- Ca Compromise</description>
<item>19</item>
</ns5:rows>
最佳答案
据我所知,无法使用 svcutil 抑制“Order”属性,因此我们编写了一个 Powershell 脚本来将其删除。它很脏,但它可以工作,我们不必担心在重新生成时手动将其剥离。
我们使用 powershell 脚本生成去除“订单”属性的代理类:
svcutil /serializer:XmlSerializer '..\.\Schema\MyService.wsdl' '/n:*,MyService.GeneratedCode' '/o:MyServiceProxy.cs' '/nologo'
(Get-Content .\o:MyServiceProxy.cs) |
Foreach-Object {
$_ -replace ", ReplyAction=`"\*`"", "" `
-replace ", Order=.", "" `
-replace "Order=.", ""
} |
Set-Content .\o:MyServiceProxy.cs
关于xsd - SvcUtil 为 xsd :all complexcontent 生成 "Order"命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384254/
我读了一本书“Pro c# 2010 and the .net 4 Platform”Andrew Troelsen。我停留在第 926 页“使用svcutil.exe"如果我使用的是 Visual
我正在使用模式优先的 Web 服务开发方法,方法是手动编码 WSDL/XSD,然后将其提供给 svcutil 工具以生成 .NET 数据和服务契约(Contract)。我试图通过将“UsingAddr
在谷歌搜索了一下之后,对于 Visual Studio 2008 是否使用 svcutil.exe 没有明确的答案? Visual Studio 2005 确实使用了它,但是 Visual Studi
我开发了一个 WCF 服务,它使用具有所需客户端证书的传输安全性。 它托管在 IIS 7.5 上,需要检查客户端证书。 我已经设置了一个 mex 端点,并且能够在我的浏览器中查看 wsdl https
我正在开发一个使用契约(Contract)优先方法的项目。我得到了一个 WSDL和三个 xsd's .当我使用 svcutil它围绕响应类生成一个包装器,如下所示: public partial cl
我有 wcf 服务。我尝试通过 svcutil 为客户端程序生成代理代码和配置文件: svcutil http://localhost/WcfService2/Files.svc 我通过代理获得了有效
我使用其他人的一些应用程序。现在,是时候更新一些服务和功能了。我向我的旧 wsdl 文件添加了新操作,并且我想使用 svcutil 为我的应用程序生成代码。我正在使用 C:\Program Files
我正在使用来自网络服务的 svcutil 生成数据契约(Contract)。 svcutil /language:cs /noConfig /targetclientversion:Version35
我有一个公开了 soap 和 xml 端点的 WCF 服务。当我使用 svcutil 在客户端生成代理代码时,生成的配置包含两个导致客户端失败的端点。如果我编辑 web.config 文件并删除第二个
我正在尝试使用我编写的 WCF 服务,但我无法获取 svcutil.exe 来生成代理。 我尝试的每条路径都会出现访问被拒绝...我需要设置什么才能获得许可? Generating files...
我试图通过使用 svcutil.exe 创建 WCF 代理来使用使用 WSDL 指定的 Web 服务,但 WSDL 指定某些操作具有可选参数 (minOccurs="0"),例如: 不幸的是,生成的
我想运行 svcutil.exe用于访问 Internet 上的 Web 服务的工具。不幸的是,每当我尝试时,都会收到一堆错误,其中包括以下消息: The request failed with HT
我试图通过SvcUtil.Exe工具生成代理,如果该工具在Visual Studio命令行中提供的话。我已经检查了它所在的默认目录,并且看到可执行文件位于以下目录中 C:\Program Files
我们有目前使用用户名和密码保护的 OSB 服务。我在尝试使用 svcutil 生成服务代理时收到 401 未授权。我知道您需要设置一个 svcutil.exe.config 文件,但除了通过证书的示例
我整天都在和 SvcUtil 搏斗,试图让它为一些 IMS 企业服务(主要是组管理服务,但我们也需要它来工作)生成有用的代码。你可以在这里找到 IMS 服务 WSDL http://www.imsgl
我尝试调用 svcutil.exe 并指定命名空间参数,但无论我做什么,即使我重用来自 Internet 的工作示例,也会收到错误。 例如,在这里我尝试了最简单的选项只是为了测试 - /namespa
我编译了一个新的 WCF 应用程序,运行时出现错误 "The dependent tool 'svcutil.exe' is not found. " 谁能告诉我该怎么做吗? 最佳答案 要解决此问题,
我试图通过命令行生成我的解决方案的服务引用,所以我一直在尝试使用 svcutil 来完成。我有两个问题。 在 Visual Studio 2012 中,我可以指定 System.Array 集合类型和
当 VS.NET 中的添加服务引用提供了您需要的所有代理类时,为什么有人会使用 SvcUtil.exe? 最佳答案 有时在 VS 中添加服务引用无法创建有用的代理。相反,它会为您提供一个空的 Refe
是否可以通过 svcutil 只为一种方法生成异步 ServiceOperation? 我知道我可以添加 /async 参数,但它会以异步模式生成所有方法。 最佳答案 /async 选项允许您生成同步
我是一名优秀的程序员,十分优秀!