Silverlight 2异常
我有一个silverlight 2应用程序,它可以从一个单独的assem/lib中观察到一个类的集合。当我在该集合上设置ListBox.ItemsSource并运行它时,会得到错误代码: 4004“System.ArgumentException:值不在预期范围内 以下是代码的一部分:Silverlight 2异常,silverlight,silverlight-2.0,Silverlight,Silverlight 2.0,我有一个silverlight 2应用程序,它可以从一个单独的assem/lib中观察到一个类的集合。当我在该集合上设置ListBox.ItemsSource并运行它时,会得到错误代码: 4004“System.ArgumentException:值不在预期范围内 以下是代码的一部分: public partial class Page : UserControl { ObservableCollection<Some.Lib.Owner> ooc; public
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;
}
}
public部分类页面:UserControl
{
可观察收集ooc;
公共网页()
{
ooc=新的ObservableCollection();
Some.Lib.Owner o1=新建Some.Lib.Owner(){FirstName=“test1”};
Some.Lib.Owner o2=新的Some.Lib.Owner(){FirstName=“test2”};
Some.Lib.Owner o3=新的Some.Lib.Owner(){FirstName=“test3”};
ooc.添加(o1);
ooc.添加(o2);
添加(o3);
初始化组件();
lb1.ItemsSource=ooc;
}
}
但是当我在同一个项目中创建Owner类时,一切都很好。
在幕后有什么安全措施吗?另外,当我创建这个Silverlight 2应用程序时,我使用的是生成html页面选项而不是aspx选项。您是在尝试使用标准类库还是“Silverlight类库” 由于Silverlight 2使用CLR的子集,因此无法访问使用完整CLR编译的标准类库。要使用外部程序集,必须将其创建为“Silverlight类库”。这将创建一个仅包含Silverlight可用的名称空间的项目,并允许您在Silverlight项目中引用程序集
查看MSDN文章了解更多信息。这可能是因为您没有处理SubmittedChanges()中的故障。有关更多信息,请参阅 现在一切都在一个项目中 是的,但不是像你刚才做的那样,而是共享、链接到文件 对于这一点,当需要在应用程序和服务之间共享公共<代码>实体代码>代码时,使用Silverlight的绝地思维老把戏。如果由于.Net/CLR中的差异而无法引入库,则会执行此操作 诀窍是将该文件作为链接包含到另一个项目中。这里是如何
Add
,然后选择Existing Item…
或shift
alt
A
Add
按钮上选择下拉箭头这将允许访问该文件,就像该文件实际上位于项目文件夹中一样,但该文件实际位于其他位置……并避免CLR问题。是的,我将其创建为Silverlight类库。在无数个小时搜索“谷歌”之后,我放弃了。现在一切都在一个项目中。