2010-03-11 55 views
24
[DataMember] 
    public int? NumberOfPages; //////////// Is this supported???? 
    [DataMember] 
    public bool? Color;   //////////// Is this supported???? 
    [DataMember] 
    public int? BulkQuantity; 
    [DataMember] 

回答

31

是的,當然!

您應該沒有任何問題可以創建可爲空的數據成員,它們將在生成的WSDL/XSD中作爲「xs:nillable = true」成員進行處理。沒有問題。

+0

但是,當我這樣做,並使用WCF測試客戶端進行測試時,它說「WCF測試客戶端不支持此操作」。 – Pinu 2010-03-11 17:13:33

+0

也許這只是WCF測試客戶端無法處理它!嘗試編寫自己的小客戶端來調用單個函數並獲取該信息。 – 2010-03-11 17:25:57

+0

marc_s是對的;該網頁允許您在瀏覽器中測試服務,只支持原始數據類型作爲參數。這不會損害服務的功能。如果您不想編寫自己的工具,請嘗試使用MS WCF測試客戶端(http://msdn.microsoft.com/zh-cn/library/bb552364.aspx) – GreenIcicle 2010-03-12 07:13:43

4

@Kahoon和Batwad:

  1. 在類:

    我們分兩步使用nullable<>?型解決了這個問題含有通用字段,定義字段如下:

    nullable<GenType> MyField {get; set;} 
    
  2. 在使用數據契約在這個基類中,您可以使用一些註解類標籤來定義序列化器/解串器已知的元素。在這裏,我們定義。例如:

    [Serializable] 
    [DataContract] 
    [KnownType(typeof(BaseClass<nullable<DateTime>>))] 
    

    相反的BaseClass<nullable<DateTime>>可以使用BaseClass<DateTime?>,我想。

在此之後,泛型空值的序列化爲我們工作。