【问题标题】:Silverlight - WCF: Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollectionSilverlight - WCF:无法隐式转换类型'System.Collections.ObjectModel.ObservableCollection
【发布时间】:2012-01-30 21:49:05
【问题描述】:

我的 silverlight 应用程序使用了我的 wcf 服务。其中一个对象具有集合属性。在服务端,属性是一个列表

这些天一切正常,我不确定我做了什么,我在哪里做了任何更改,但突然我的 silverlight 应用程序抛出了这个错误。我试过用windows forms应用,还是一样。

Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollection<someobject> to someobject[]

通常当它发生时,我右键单击服务并“配置服务引用”并将集合类型从下拉列表更改为可观察集合,但这次它似乎不起作用。令我不解的是,它现在工作了6个多月,今天突然不行了。

我尝试获取以前版本的 wcf web.config 文件,但似乎没有任何解决方法。

======================= 更新:

我想我发现了问题所在,我只是不知道为什么它不能这样工作。

原来我的任务课是这样的

public class Task
{
    Public List<TaskItem> Items { get; set; }   
    //Public TaskItems Items { get; set; }  
}

现在我有这样的:

public class Task
{
    //Public List<TaskItem> Items { get; set; } 
    Public TaskItems Items { get; set; }    
}

public class TaskItems : List<TaskItem>
{

}

我想如果我可以在我的 silverlight 应用程序中看到 TaskItems 对象,我应该会很好。但由于某些原因,它没有出现。 在客户端,我这样引用:

task.Items = new ObservableCollection<TaskItem>();

【问题讨论】:

  • 你能把wcf服务的配置贴出来吗?以及服务的代码
  • 我更新了我的问题。我认为问题出在继承部分,但我不知道这有什么关系。
  • 您是否尝试过在适当的地方显式添加 DataContract 和 CollectionDataContract 属性?
  • 这些类不在界面中,仍然可以在客户端访问。我尝试添加 DataContract 属性,因为它不在接口文件上,所以它不会接受它。

标签: silverlight


【解决方案1】:

我认为您缺少 [Serializable] 属性。

【讨论】:

  • 没用 :( 不知道我做了什么其他改变,这让我发疯了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
相关资源
最近更新 更多