WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之间有什么区别?

时间:2010-11-24 14:25:37

标签: c# web-services

我有一个xml网络服务,如:

[WebService(Description = "The Calculator Web Service",

                            Name = "CalculatorWebService")]

[WebServiceBinding(ConformsTo = WsiProfiles.None, EmitConformanceClaims = false)]

public class Service : System.Web.Services.WebService

{ 

    [WebMethod(Description = "Subtracts two integers.")]

    public int Subtract(int x, int y) { return x - y; }



    [WebMethod(Description = "Adds two float.", MessageName = "AddFloats")]

    public float Add(float x, float y) { return x + y; }



    [WebMethod(Description = "Adds two integers.", MessageName = "AddInts")]

    public int Add(int x, int y) { return x + y; }

}

我已经阅读了一些关于WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims的文章。但是,我找不到它们之间的差异。我对此感到困惑,因为如果ConformsTo = WsiProfiles.None,则无论EmitConformanceClaims = false还是true,客户端都可以成功调用上述Web服务。那么,为什么我们需要EmitConformanceClaims?

感谢。

1 个答案:

答案 0 :(得分:1)

  • 设置EmitConformanceClaims只是意味着在请求服务的WSDL时,会发出ConformsTo设置的声明。

  • 一致性声明(ConformsTo)声明了绑定所遵循的规范。

因此设置ConformsTo设置您的规范级别,EmitConformanceClaims允许您输出(或不输出)服务描述中的级别。显然,如果将ConformsTo设置为None,则无需发出任何内容,因此EmitConformanceClaims无效。