我有一个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?
感谢。
答案 0 :(得分:1)
设置EmitConformanceClaims
只是意味着在请求服务的WSDL时,会发出ConformsTo
设置的声明。
一致性声明(ConformsTo
)声明了绑定所遵循的规范。
因此设置ConformsTo
设置您的规范级别,EmitConformanceClaims
允许您输出(或不输出)服务描述中的级别。显然,如果将ConformsTo设置为None,则无需发出任何内容,因此EmitConformanceClaims
无效。