2012-05-08 4 views
6

Visual Studio에서 SDL Tridion 2011 SP1의 CD OData webservice에 대한 서비스 참조를 생성했으며 모든 것이 올바르게 작동하는 것처럼 보였습니다. 그러나 특정 구성 요소를 요청하면 이 :닫힌 유형 구성 요소에 해당 IsMultimedia 설정 가능 속성이 없음

ContentDeliveryService cdService1 = new ContentDeliveryService(new Uri("http://xxx:81/odata.svc")); 
var item = cdService1.Components.Where(p => p.ItemId == 29 && p.PublicationId == 1).First(); 
Console.WriteLine(item.ItemId); 

그것은 던지고 예외 :

The closed type ConsoleApplication1.CdService.Component does not have a corresponding IsMultimedia settable property. 

는 사람이 핫픽스이를 알고 있나요

?

답변

7

서버가 클라이언트에게 알지 못하는 속성 (IsMultimedia 속성)을 보내는 문제가 있다고 가정합니다. 예를 들어 Fiddler를 사용하여 서버의 응답을 확인하여이를 확인할 수 있습니다. 서버의 컴포넌트 유형이 열린 것으로 표시되면 (선언 된 것보다 더 많은 특성을 가질 수 있음) 발생할 수 있습니다. 클라이언트 라이브러리는 현재 열린 유형을 직접 지원하지 않습니다.

클라이언트에서 IsMultimedia 속성이 필요하지 않은 경우 cdService1.IgnoreMissingProperties = true를 설정하여이 오류를 표시하지 않을 수 있습니다.

클라이언트에서 IsMultimedia 속성이 필요하면 생성 된 Component 클래스가 부분 클래스 여야하므로 IsMultimedia 속성을 수동으로 추가 할 수 있습니다. 그렇다면 그것은 또한 작동해야합니다.

3

이것은 다음 버전에서 수정 될 예정입니다. 는 IgnoreMissingProperties 작품 설정, 다른 솔루션은이 참조의 Reference.cs 파일을 열고 2011 GA의 시험판 버전으로 주위를 연주 할 때 나는 유사한 오류가 있었다 IsMultimedia

+0

public global::System.Nullable<bool> Multimedia 속성을 변경하는 것입니다 ... –