代码之家  ›  专栏  ›  技术社区  ›  Thomas Lötzer

ASP.NET Web服务中的可选参数

  •  8
  • Thomas Lötzer  · 技术社区  · 16 年前

    我有一个ASP.NET Web服务。这个Web服务工作正常。但是,WSDL将一些参数列为可选(minoccurs=0),其他参数列为非可选。一些可选参数实际上不是可选的,其他标记为非可选的参数实际上是可选的。我想解决这个问题,但找不到这个信息的来源。

    在我看来,所有基本类型(int、boolean等)都是非可选的,所有其他参数都标记为可选。但是,我找不到可以更改此内容的位置。如果请求中缺少基元值,我想为它们指定默认值,并指定哪个非基元参数实际上是可选的。我在哪里做这个?

    2 回复  |  直到 16 年前
        1
  •  7
  •   abatishchev Karl Johan    12 年前

    我假设当您说ASP.NET Web服务时,您正在使用ASMX扩展创建Web服务。我认为在这种情况下,所有可以为空的类型都变为可选的,而不可以为空的类型则变为非可选的。

    您也许可以手动编辑生成的WSDL文件。但是,如果WSDL被重新生成,那么您就必须重做这项工作。

    我建议您使用basishtpbinding切换到wcf(除了您的服务名称之外,您的客户机不应该注意到这一区别)。

    使用wcf,您可以简单地将数据协定中的参数标记为是否需要:

    [DataMember(IsRequired="false")]
    
        2
  •  6
  •   oglester    16 年前

    原语不是 参考 类型,但实际上是 价值 类型。你可以做一个 价值 通过两种方式键入“nullable”。

    小手牌是

    int? i;
    

    或是这里的长手

    Nullable<int> i;
    
    推荐文章