문제

나는 웹 서비스를 구현하는 노출의 목록을 값(정수,사용자 정의 클래스를 제공합니다 etc.).내 작업 솔루션을 반환 List<T>, 과에 따르면 FxCop 그것은 더 나은 반환 Collection<T>ReadOnlyCollection<T>.

하는 경우 반환 ReadOnlyCollection<T>, 웹 서비스의 종류:

수 XML 직렬화,유형에서 상속 ICollection 야의 구현 Add(System.Int32) 모든 수준에서 그 기업의 계층 구조입니다. System.Collections.ObjectModel.ReadOnlyCollection 1 [[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 을 구현하지 않습 Add(System.Int32).

무엇을 좋아하는 방법을 사용하여 내부적으로 List<T> 고 노출 Collection<T> ?(C#을 사용하여,바람직하게는 framework2.0 만)

도움이 되었습니까?

해결책

목록<T> 거나 컬렉션<T> 은 경우에.

의 측면에서는 원래 질문할 수 있는 포장 목록<T> 컬렉션<T> 매우 간단하다:

List<Foo> list = new List<Foo>();
// ...
Collection<Foo> col = new Collection<Foo>(list);

이것은 진정한 랩퍼;에 항목을 추가 wrapper(col),그리고 그것은 목록에 추가됩니다.이할 수 있기 때문에,그와 같은 많은 생성자를 사용하여 인수하는 초기 인구는지에 대한 링크를 원래 목록입니다.컬렉션<T> 는 예외로,-p

기 때문에 당신은 웹 서비스 경계,추천서 FxCop 적용되지 않습니다.유용(인라인 에릭 리퍼트의 최신 블로그)을 방지하는 발신자 쾅쾅 통해 수신자의 메모리-하지만 웹 서비스산 시나리오는 단순히 적용되지 않습니다.기 때문에 사실,웹 서비스에는 몇 가지 잘 설명되어 일 일반적인 시나리오,간단한 배열은 틀림없이 아주 쓸모 있고 실용적인 웹서비스 경계가 있습니다.의 컨텍스트에서 에릭의 블로그에서 이 경우 문제가 없다,발신자/수신자 문제가 있기 때문에 적용 되는 장벽입니다.

의 관점에서 WSDL/mex,내가 의심되는 모든 3(트/션/배)이 차단되어있는 요소의-그래서 당신도 잘 이동 중 가장 편리합니다.

다른 팁

나는 보통 Ilist를 반환합니다u003CT> WCF 웹 서비스에서 : FXCOP는 이것에 충분히 행복합니다. 이것이 ASMX 웹 서비스와 함께 작동하는지 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top