相关疑难解决方法(0)

具有可选参数的Web服务方法

可能重复:
我是否可以为ASP.NET SOAP Web服务提供可选参数

我试过四处寻找,但我真的找不到合适的解决方案.很抱歉重复,因为我知道之前有人问过这个问题.我有一个Web服务方法,我想在其中有一个可选参数,例如:

public void MyMethod(int a, int b, int c = -3)
Run Code Online (Sandbox Code Playgroud)

我已经知道我不能使用可空参数,所以我只想尝试使用默认值.问题是,当我调用此方法而不提供参数时,c仍然会获得异常.有什么地方我必须指定它实际上是可选的吗?

Thanksю

.net c# web-services optional-parameters

26
推荐指数
3
解决办法
5万
查看次数

我可以为ASP.NET SOAP Web服务提供可选参数

我想用这个签名构建一个web服务,如果param2留空,它不会抛出异常.这可能吗?

[WebMethod]
public string HelloWorld(string param1, bool param2) { }
Run Code Online (Sandbox Code Playgroud)

异常是在尝试将空字符串转换为布尔值时抛出的System.ArgumentException.

到目前为止没有奏效的想法:

如建议在这里:

  • 使bool可空的bool?.同样的例外.
  • 操纵WSDL,看到这个答案

我的问题与这个问题有关,但唯一的答案是WCF合同,我还没有使用过.

.net c# asp.net web-services optional-parameters

15
推荐指数
3
解决办法
2万
查看次数

如何使dotnet webservice在字符串值上设置minOccurs ="1"

我有一个XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns="http://a.com/a.xsd"
     targetNamespace="http://a.com/a.xsd"
     elementFormDefault="qualified"
     attributeFormDefault="unqualified">
    <xs:element name="A">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Item"  minOccurs="1" maxOccurs="1">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:minLength value="1"/>                                       
                            <xs:whiteSpace value="collapse"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

我已经转换成使用XSD.EXE v2.0.50727.3615 C#类,其生成代码如下

namespace A {
    using System.Xml.Serialization;
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://a.com/a.xsd")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace="http://a.com/a.xsd", IsNullable=false)]
    public partial class A {
        private string itemField;
        /// <remarks/>
        public string Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在我的webservice中返回一个AA对象,它在服务描述中生成这个片段 …

.net xsd wsdl web-services asmx

8
推荐指数
2
解决办法
2万
查看次数

具有Nullable类型的方法在使用GET的ASMX Web Service中不起作用

我有一个ASMX Web服务设置为使用HTTP GET方法.采用基本String和Int参数的简单方法正常工作,我可以MyService.asmx/MethodName?Param=Value用XML 调用并获得响应.

但是,当我有一个具有可空Int(即int?)的方法时,我收到此错误:

<方法名称> Web服务方法名称无效.

错误消息令人困惑,因为该方法确实存在,而不是在GET范围内.我认为这是因为可空类型太复杂而无法通过URL传递,但我找不到任何文档或SO帖子.

我很欣赏Lists或自定义类等复杂类型无法使用GET,但我认为可以原生处理一个简单的可空int或可空日期,只需检测它是否从URL中省略.猜猜不是那么简单!

任何建议或解决方法将不胜感激.

蒂姆,谢谢

c# asp.net web-services http-get asmx

6
推荐指数
1
解决办法
4790
查看次数

启动合同优先 WCF 或 Web 服务的最佳方式?

我得到了一个 WSDL 文件和几个 XSD 文件来为其构建 Web 服务。现在我正在尝试设置它以接收请求和响应。

我对 WebServices 的经验仅限于带有 asmx 文件等的旧 asp 版本。

XSD 文件中有很多信息,我不想手动构建这些类,我也不太清楚这到底意味着什么(我想只是一个 xml 可序列化类,但还没有看过进去)。

我从哪里开始呢?我研究了 WCF,但它对我来说完全陌生,所以我宁愿使用旧样式,但我正在努力寻找有关如何设置它或从 XSD 文件自动生成类的任何信息.

我确实尝试过 WCF,但是Cannot import wsdl:portType当我尝试生成 WebService 代码时,WSCF blue 给了我错误 ( )。并且由于某种原因svcutil.exe会生成一些XSD 文件信息,但不是全部。

所以两个问题:

  1. 如何从 XSD 文件生成一些存根类以实现这一目标

  2. 从不使用 wscf blue的 WSDL 和多个 XSD 文件生成 WCF 服务的教程/演练?

c# xml wcf xsd web-services

3
推荐指数
1
解决办法
3589
查看次数

标签 统计

web-services ×5

c# ×4

.net ×3

asmx ×2

asp.net ×2

optional-parameters ×2

xsd ×2

http-get ×1

wcf ×1

wsdl ×1

xml ×1