首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止xsd文件中的maxOccurs=“无界”

如何防止xsd文件中的maxOccurs=“无界”
EN

Stack Overflow用户
提问于 2012-03-03 02:20:57
回答 1查看 2.5K关注 0票数 1

我没有通过安全扫描。

MaxOccurs=“无界”

在我的silverlight客户端上的xsd中出现,以获取对我的一个web服务的服务引用。

是否可以在web服务中设置一个属性或某些东西来防止以这种方式生成xsd?

它实际上是一个WCF

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-04 19:20:44

在WCF中没有支持。即使你做的是真正的契约优先,并且在wcf从你的wsdl+xsd生成类时手动编写消息契约,如果maxOccurs值大于1,它也会忽略它。因此,当你公开服务时,生成的契约将再次具有maxOccurs="unbounded"

但是,您可以通过实现自定义终结点行为(实现IWsdlExportExtension, IEndpointBehavior接口)来轻松更改此行为:

  • 通过合同创建您的类您的合同文件位于您的服务主机项目
  • 上的文件夹中将您的端点行为添加到您的服务端点
  • 在endpoint behavior类中,将生成的模式导入替换为实际的xsd的

通过这种方式,生成的合同将包含原始模式,而不是生成的模式。

此外,您还需要使用您的xsd验证XML文件,因为WCF不会验证您的maxOccurs属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9538378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档