2011-11-25 4 views
1

나는이RIA 서비스 <int>

IEnumerable<int> 

같은 이유는이 수를 '노출되고

List<int> 

유형의 속성 RIA 서비스에 사용되는 클래스가 RIA에 IList 또는 List로 노출 되나요?

IEnumerable은 노출 할 의도 된 인터페이스가 아닙니다. 더 나쁜 것은, 되돌아 오는 타입은 배열 int []입니다. 이것은 클라이언트에서 IList로 변환 할 때 고정 된 크기이므로 더할 수 없습니다.

제안 사항?

답변

1

속성 선언 사본이나 작업중인 개체의 전체 개체 선언을 게시하십시오. 또한 목록보다는 IList를 사용하는 것이 더 융통성이 있으며 앞으로 더 나은 재사용 성을 제공 할 수 있기 때문에 IList를 사용하는 것이 좋습니다.

+0

속성 decleration을 게시 하겠지만 추가 값은 제공하지 않습니다. – user1060500

0

일반 목록이나 배열 대신 IEnumerable이 노출되는 이유는 IEnumerable의 확장 된 기능 때문입니다.

IEnumerable을 다른 모든 유형의 목록 (배열)으로 변환하는 것은 매우 쉽습니다. System.Linq 네임 스페이스를 추가하고 IEnumerable 인스턴스에서 .ToList() 또는 .ToArray() 확장명을 사용하기 만하면됩니다.

+0

이 문제는 목록의 복사본을 만들어 원래 목록에 대한 연결이 끊어지는 문제입니다. RIA에서 반환 된 IEnumerable 속성을 원래 IEnumerable을 기반으로 한 새 값으로 다시 할당하여 문제를 해결할 수 있습니다. 예 : RIAObject.SomeList = 새 목록 (RIAObject.SomeList); – user1060500

+0

intrisc 유형을 처리 할 때 List 은 고정 크기이므로 목록을 새 목록에 추가 할 수 없습니다. 이 경우 목록 데이터를 수동으로 관리하려면 클라이언트에서 추가 작업을해야합니다. – user1060500