2010-12-20 2 views
0

제가 직렬화해야하는 객체가 있습니다. 객체에는 List를 비롯한 여러 속성이 포함되어 있습니다. FXCop은 제네릭리스트를 공개해서는 안되는 것을 불평하고 있습니다. 사실, 직렬화하려는 객체에 인터페이스 기반 속성을 지정할 수 없기 때문에 다음에 어디로 향할 지 모릅니다.리스트를 Seriazlize 할 필요가 있지만 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); 
      } 
     } 
    }