Tridion 关闭类型组件没有相应的IsMultimedia可设置属性

Tridion 关闭类型组件没有相应的IsMultimedia可设置属性,tridion,tridion-content-delivery,Tridion,Tridion Content Delivery,我已经在Visual Studio中生成了一个服务引用,指向SDL Tridion 2011 SP1上的CD OData webservice,一切似乎都正常工作,但当我请求使用以下代码的特定组件时: ContentDeliveryService cdService1 = new ContentDeliveryService(new Uri("http://xxx:81/odata.svc")); var item = cdService1.Components.Where(p => p

我已经在Visual Studio中生成了一个服务引用,指向SDL Tridion 2011 SP1上的CD OData webservice,一切似乎都正常工作,但当我请求使用以下代码的特定组件时:

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.

有人知道热修复吗?

我假设问题是服务器向您发送了一个客户端不知道的属性(IsMultimedia属性)。您可以通过使用Fiddler查看服务器的响应来确认这一点。如果服务器上的组件类型标记为open(可以具有比声明的属性更多的属性),则可能会发生这种情况。客户端库目前不直接支持开放类型

如果客户端不需要IsMultimedia属性,可以通过设置cdService1.IgnoreMissingProperties=true来抑制此错误


如果您确实需要客户端上的IsMultimedia属性,那么为您生成的组件类应该是分部类,因此您可以手动将IsMultimedia属性添加到其中。然后它也应该可以工作。

这似乎是一个缺陷,将在下一个版本中修复。
设置
IgnoreMissingProperties
有效,另一个解决方案是打开此引用的
Reference.cs
文件,并将
public global::System.Nullable Multimedia
属性更改为
IsMultimedia

在玩2011年GA的预发布版本时,我遇到了类似的错误。。。