从 ASP.NET 引用便携式 Class 库 (PCL) 4.5 MVC 给出关于 List<> 的错误

Reference a Portable Class Library (PCL) from ASP.NET 4.5 MVC gives error about List<>

我在尝试访问目标为

的可移植 class 库中 present/referenced 的一些对象时遇到了很多问题

.NET Framework 4.5 ASP.NET核心5.0 Windows 8 Windows Phone 银光8 赛马林 Android Xamarin iOS

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

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

public List AnotherPCLObjectList {get;set;}

当我尝试访问 属性 时,出现 CS0012 错误;类型 List<> 在未引用的程序集中定义。您必须添加对程序集的引用 'System.Collections, Version 4.0.0.0, Culture neutral, PublicKeyToken=b03f5f7f11d50a3a'.

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

下面是问题:

  1. 有没有办法添加ASP.NET4.5作为目标,找了好几个小时也没找到方法

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

  3. 如果有某种魔术用于映射程序集,那记录在哪里?

如果您仍然遇到此问题,您应该能够通过将程序集引用添加到 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.

的引用

希望对您有所帮助!