【问题标题】:Reference a Portable Class Library (PCL) from ASP.NET 4.5 MVC gives error about List<>引用 ASP.NET 4.5 MVC 中的可移植类库 (PCL) 给出有关 List<> 的错误
【发布时间】:2015-12-31 06:59:55
【问题描述】:

我在尝试访问具有以下目标的可移植类库中存在/引用的一些对象时遇到很多问题:

.NET 框架 4.5 ASP.NET 核心 5.0 视窗 8 Windows Phone 银光 8 Xamarin Android Xamarin iOS

PCL 用于多个设备和项目,但是,我现在需要将它集成到 MVC 4.5 Web 应用程序中。

我可以从 Razor 访问直接在 PCL 中定义的一些对象,但是这个对象被难住了;我有一个具有这样属性的对象

公共列表 另一个PCLObjectList {get;set;}

当我尝试访问该属性时,我收到 CS0012 错误; List 类型是在未引用的程序集中定义的。您必须添加对程序集“System.Collections,版本 4.0.0.0,中性文化,PublicKeyToken=b03f5f7f11d50a3a”的引用。

四处搜索,看起来这应该在我引用的标准程序集集中,这让我相信需要某种神奇的程序集映射?

以下是问题:

  1. 有没有办法把 ASP.NET 4.5 添加为目标,我找了几个小时也没找到。

  2. 如果在任何引用程序集目录中都找不到 System.Collections 程序集,我如何引用丢失的程序集。

  3. 如果使用某种魔法来映射程序集,那么记录在哪里?

【问题讨论】:

  • 是否可以将该列表添加为通用列表?
  • 作为一种变通方法,我添加了一个 GetAsArray 类型的方法,并且能够继续进行,但它非常 hackish。现在它是一个 List;我会修正我对问题的描述,我注意到这方面没有正确表示。

标签: c# asp.net-mvc-4 generics razor portable-class-library


【解决方案1】:

如果您仍然遇到此问题,您应该能够通过将程序集引用添加到 web.config 的编译部分来解决它。

<compilation ...>
     <assemblies>
          <add assembly="System.Collections, Version 4.0.0.0, Culture neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </assemblies>
</compilation>

我在针对 4.6.1 的 MVC 5.2.3 项目中遇到了同样的问题,该项目引用了可移植程序集。 Intellisense 不适用于一些与 Linq 扩展相关的程序集,因此我必须添加 System.Core 的引用。

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2018-07-06
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多