- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
更新:2012 年 11 月 26 日我已经使用 wsdl.exe 而不是 svcutil 更新了自动生成的 c# 类,因此我可以在代理类中获取 SOAP 属性(我正在调用 SOAP 服务)。我最初的问题是序列化,但在 markus 的帮助下,我现在可以序列化了。但是现在我从服务中得到一个错误:
无效的请求对象:必须是查询请求
当我对其进行硬编码时有效的 xml:
<xml version="1.0"?><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Header/><Body>
<QueryRequest xmlns="http://emkt.pjm.com/emkt/xml">
<QueryMarketResults type="Virtual" day="2012-11-16"><All/>
</QueryMarketResults></QueryRequest></Body></Envelope>
它生成的 xml 是:
<?xml version="1.0" encoding="utf-16"?>
<QueryRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://emkt.pjm.com/emkt/xml">
<QueryMarketResults day="2012-11-16" type="Virtual">
<All />
</QueryMarketResults>
</QueryRequest>
我缺少信封和正文标签。我尝试如下序列化,但出现错误“生成 XML 文档时出错”。
XmlTypeMapping myTypeMapping = (new SoapReflectionImporter().ImportTypeMapping(typeof (QueryRequest)));
XmlSerializer serializer = new XmlSerializer(myTypeMapping);
下面是相关的代理类:(我在下面的 QueryRequest 上添加了 [XmlRoot] 属性,它确实添加了正确的命名空间)
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=false, Namespace="http://emkt.pjm.com/emkt/xml")]
[XmlRoot(Namespace = "http://emkt.pjm.com/emkt/xml")]
public partial class QueryRequest {
private object[] itemsField;
private ItemsChoiceType1[] itemsElementNameField;
[System.Xml.Serialization.XmlElementAttribute("QueryPortfolios", typeof(QueryPortfoliosType))]
[System.Xml.Serialization.XmlElementAttribute("QueryVirtualBid", typeof(QueryByAllLocationDayType))]
[System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
public object[] Items {
get {
return this.itemsField;
}
set {
this.itemsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
[System.Xml.Serialization.XmlIgnoreAttribute()]
public ItemsChoiceType1[] ItemsElementName {
get {
return this.itemsElementNameField;
}
set {
this.itemsElementNameField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://emkt.pjm.com/emkt/xml", IncludeInSchema=false)]
public enum ItemsChoiceType1 {
QueryPortfolios,
QueryVirtualBid,
}
感谢您的帮助!
最佳答案
构造函数不会为数组分配任何值,因此它们将为空。
试试这个:
var qr = new QueryRequest
{
ItemsElementName = new ItemsChoiceType1[] {
ItemsChoiceType1.QueryMarketResults,
},
Items = new object[] {
new QueryByAllLocationDayTypeType
{
ItemElementName = ItemChoiceType3.All,
Item = new QueryAllType(),
day = Convert.ToDateTime("2012-11-16"),
type = MarketQueryTypeType.Virtual,
},
},
}
或者,等效地没有对象初始值设定项:
var qmr = new QueryByAllLocationDayTypeType();
qmr.ItemElementName = ItemChoiceType3.All;
qmr.Item = new QueryAllType();
qmr.day = Convert.ToDateTime("2012-11-16");
qmr.type = MarketQueryTypeType.Virtual;
var qr = new QueryRequest();
qr.ItemsElementName = new ItemsChoiceType1[1];
qr.ItemElementName[0] = ItemsChoiceType1.QueryMarketResults;
qr.Items = new object[1];
qr.Items[0] = qmr;
关于c# - 填充 svcutil off wsdl 生成的类时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462041/
我读了一本书“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 选项允许您生成同步
我是一名优秀的程序员,十分优秀!