【问题标题】:Silverlight 2 ArgumentExceptionSilverlight 2 参数异常
【发布时间】:2010-09-26 13:33:27
【问题描述】:

我有一个 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 应用程序时,我使用的是生成 html 页面选项而不是 aspx 选项。

【问题讨论】:

    标签: silverlight silverlight-2.0


    【解决方案1】:

    您是在尝试使用标准类库还是“Silverlight 类库”?

    因为 Silverlight 2 使用 CLR 的子集,它无法访问使用完整 CLR 编译的标准类库。要使用外部程序集,您必须将其创建为“Silverlight 类库”。这将创建一个仅包含 Silverlight 可用的命名空间的项目,并允许您在 Silverlight 项目中引用该程序集。

    查看 MSDN 文章 ".NET Framework Class Library for Silverlight" 了解更多信息。

    【讨论】:

    • 是的,我将它创建为 Silverlight 类库。在无数小时搜索“The Google”之后,我放弃了。现在一切都在一个项目中。
    【解决方案2】:

    这可能是因为您没有在 SubmittedChanges() 中处理失败。请参阅http://www.scottleckie.com/2010/04/code-4004-unhandled-error-in-silverlight-application/ 了解更多信息

    【讨论】:

      【解决方案3】:

      现在一切都在一个项目中。

      是的,但不像你刚才那样做,而是分享、链接到文件。

      当需要在应用程序和服务之间共享公共 entity 代码时,这是 Silverlight 的一个古老的绝地思维技巧。这是在由于 .Net/CLR 的差异而无法引入库时完成的。

      诀窍是将文件作为 链接 包含到另一个项目中。方法如下

      1. 在需要代码文件的目标(Silverlight项目)文件夹中,右键单击并选择Add然后选择Existing Item...shiftaltA
      2. 浏览到找到的源文件的位置并选择/那些文件。
      3. 选择项目后,在Add 按钮上选择下拉箭头。
      4. 选择Add as link 将文件作为链接添加到文件夹中。

      完成后,只有一个副本,但在两个不同的地方构建。

      这将提供对文件的访问权限就好像该文件实际上是在项目的文件夹中,但该文件实际驻留在其他地方...并避免 CLR 问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 2016-05-04
        • 2015-09-15
        • 2012-01-08
        • 2011-06-27
        相关资源
        最近更新 更多