从ASP.NET 4.5 MVC引用可移植类库(PCL)会出现有关List<>

时间:2015-12-31 06:59:55

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

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

.NET Framework 4.5 ASP.NET Core 5.0 Windows 8 Windows Phone Silver Light 8 Xamarin Android Xamarin iOS

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

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

public List< AnotherPCLObject> AnotherPCLObjectList {get; set;}

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

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

以下是问题:

  1. 有没有办法将ASP.NET 4.5添加为目标,我追捕了几个小时但找不到办法。

  2. 如果在任何参考程序集目录中找不到System.Collections程序集,如何引用缺少的程序集。

  3. 如果用于映射装配的某种魔法,那么记录在哪里?

1 个答案:

答案 0 :(得分:0)

如果您仍然遇到此问题,您应该可以通过将程序集引用添加到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添加一个引用。

希望有所帮助!