我有一个silverlight 2应用程序,它有一个来自独立assem/lib的类的ObservableCollection。当我在这个集合上设置我的ListBox.ItemsSource并运行它时,我得到了错误代码:
4004 "System.ArgumentException:值不属于预期范围。
下面是代码的一部分:
public partial class Page : UserControl
{
ObservableCollection<Some.Lib.Owner> ooc;
public Page()
{
ooc = new ObservableCollection<Some.Lib.Owner>();
Some.Lib.Owner o1 = new Some.Lib.Owner() { FirstName = "test1" };
Some.Lib.Owner o2 = new Some.Lib.Owner() { FirstName = "test2" };
Some.Lib.Owner o3 = new Some.Lib.Owner() { FirstName = "test3" };
ooc.Add(o1);
ooc.Add(o2);
ooc.Add(o3);
InitializeComponent();
lb1.ItemsSource = ooc;
}
}但是当我在同一个项目中创建Owner类时,一切都很好。在幕后有什么安全的事情吗?另外,当我创建这个Silverlight 2应用程序时,我使用的是generate页面选项,而不是aspx选项。
发布于 2008-12-17 00:47:53
您是想使用标准类库还是"Silverlight类库“?
因为Silverlight 2使用CLR的一个子集,所以它不能访问使用完整CLR编译的标准类库。若要使用外部程序集,必须将其创建为"Silverlight类库“。这将创建一个只包含Silverlight可用名称空间的项目,并允许您引用Silverlight项目中的程序集。
有关更多信息,请查看MSDN文章“Silverlight.NET框架类库”。
发布于 2010-04-24 00:52:34
这可能是因为您没有处理SubmittedChanges()中的故障。有关更多信息,请参见http://www.scottleckie.com/2010/04/code-4004-unhandled-error-in-silverlight-application/
发布于 2020-12-17 01:19:35
现在一切都在一个项目中。
是的,但不像你刚才做的那样,相反,共享,链接到文件。
因此,当应用程序和服务之间需要共享共同的entity代码时,这是一个古老的绝地思维技巧Silverlight。这是在由于.Net/CLR中的差异而无法引入库时执行的。
诀窍是将该文件作为另一个项目的链接。以下是如何
Add,然后选择Existing Item...或shift alt A。Add按钮上选择下拉箭头。Add as link将文件作为链接添加到文件夹中。

一旦完成,只有一个副本,但建在两个不同的地方。
这将提供对文件的访问权限,就好像该文件实际上在项目的文件夹中一样,但是该文件物理驻留elsewhere...and避免了CLR问题。
https://stackoverflow.com/questions/361490
复制相似问题