我有一个像这样的xml Web服务:

[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?

谢谢。

最佳答案

设置EmitConformanceClaims只是意味着当请求服务的WSDL时,将发出ConformsTo设置的声明。
符合性声明(ConformsTo)声明绑定遵守的规范。


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

08-08 04:33