2010-11-24 229 views
2

我有一個XML Web服務,如:WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?

[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
  • 設置EmitConformanceClaims僅僅意味着被請求的服務的WSDL時,由ConformsTo的權利要求書被髮射。

  • 一致性聲明(ConformsTo)聲明您的綁定遵守什麼規範。

所以設置ConformsTo設置您的規格水平,EmitConformanceClaims讓你輸出(或沒有)在您的服務描述的水平。顯然,如果將ConformsTo設置爲None,則不會發出任何內容,因此EmitConformanceClaims不起作用。

+0

非常感謝您的非常明確的答案。我還有一個問題。如果我設置ConformsTo = WsiProfiles.BasicProfile1_1,那麼無論EmitConformanceClaims = false或true,上述Web服務仍然會受到WsiProfiles.BasicProfile1_1的影響。那麼,爲什麼呢?這裏有什麼祕密嗎?再次感謝。 – ipkiss 2010-11-25 00:02:57

相關問題