2010-12-20 67 views
0

我有一個對象,我需要序列化。該對象包含多個屬性,包括一個List。 FXCop抱怨說我不應該公開通用列表,但是我得到了這個結果,因爲我不能在我想要序列化的對象上指定一個基於接口的屬性,我不確定接下來要轉向哪裏。需要Seriazlize列表<object>,但FXCop抱怨「不要暴露通用列表」

有什麼想法?

順便說一句,我使用的是XMLSerialization,但這不是必需的。

回答

0

我接受了FxCop的建議,並將我的列表包裹在一個集合中。這使我的一些代碼失去了水,但經過一些調整後,我又開始運行了。

這裏是展示一些代碼前後:

前:

public class PersistentDataView 
    { 
     public string Title { get; set; } 
     private List<object> Inputs { get; set;} 
    } 

後:

public class PersistentDataView 
    { 
     private List<object> _inputs; 

     public string Title { get; set; } 
     public Collection<object> Inputs 
     { 
      get 
      { 
       if (_inputs == null) 
        _inputs = new List<object>(); 

       //Wrap the private field into a collection. 
       return new Collection<object>(_inputs); 
      } 
     } 
    }