2012-09-25 65 views
1

我們真的可以使用一些有關hashset輸出問題的幫助。除了一件事情,我們有HashSet Web方法完美地與HashSet一起工作。輸出是一個Web服務,看起來像這樣:自定義XML序列化HashSet中條目的元素名稱<string>

<?xml version="1.0" encoding="utf-8" ?> 
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost/webservices"> 
    <string>201210XXXX</string> 
    <string>201211XXXX</string> 
</ArrayOfString> 

這是完美的,除了客戶要求串線的輸出是字符串標籤「TN」的線和「/ TN」的標籤,而不是。想通了這應該是很容易,並加入我的額外類,但我無法弄清楚如何做到這一點

HashSet<TN>; 

我們建立將WebMethod

[WebMethod] 
public HashSet<string> GetFoneLines() 
{ 
    HashSet<string> hs = new HashSet<string>(); 

    DataTable dt = new dal().GetPhoneLines(); 

    foreach (DataRow dr in dt.Rows) 
    { 
     hs.Add(dr[0].ToString());  
    } 

    return hs; 
} 

,並試圖擴大string類。學習字符串是密封的,我們只是試圖創建自己的類

public class TN 
{ 
    public string tnumber; 
} 

這一定是簡單的,但48小時衝擊了代碼後,我不能看到如何創建TN的而不是字符串的哈希散列。

+3

XML樣本中沒有TN。 – Paparazzi

+0

請給你的問題一個**有意義的**標題。 – abatishchev

+1

那麼當你序列化時你會得到什麼?你是否必須通過你的web方法返回一個HashSet?因爲我非常懷疑帶有TN元素的ArrayOfString將要反序列化成HashSet。雖然可能是錯的。 –

回答

2

嘗試使用自定義XML序列化來裝飾你的類屬性,像這樣:

public class TN 
{ 
    [XmlElement(ElementName="TN")] 
    public string tnumber; 

} 

MSDN

+0

錯誤參數「1」:無法從「串」到「WebService1.TN」我喜歡它,但得到轉換一個錯誤 – Agrapha

+0

難以讓TN像String一樣操作或者擴展爲String。 – Agrapha

+0

@Agrapha:你什麼時候遇到這樣的錯誤?在「延期」下你是什麼意思?在序列化或在C#代碼? – abatishchev