我可以在.NET Standard类库中使用dynamic吗?

时间:2016-08-05 22:42:31

标签: c# .net asp.net-core-mvc .net-core

我很难尝试从常规Windows桌面开发迁移到ASP.NET Core MVC。我遇到的一个问题是创建我的解决方案。我想从VS 2015附带的默认项目中删除与UI无关的所有内容,并将其放入一个单独的项目中。

我注意到ASP MVC Core引用了.NETCoreApp,类库项目引用了.NETStandard

我的问题是我需要在类库中使用动态keyworkd并且它不支持它。 MVC项目支持没有任何问题。我想这是因为.NET版本不同。

  1. NETStandard和NETCoreApp有什么区别?

  2. 我可以创建一个使用与MVC项目相同的引用的类库,这样我就可以在其上使用dynamic关键字吗?

  3. 或者我应该在同一个地方坚持使用所有域名,基础设施等的一个项目解决方案?

1 个答案:

答案 0 :(得分:4)

是的,可以将非UI代码放入单独的库中。正如您所猜测的,netcoreapp1.0适用于应用程序(控制台或Web),netstandard1.X适用于类库。

.NET标准类库不应该对dynamic关键字有任何问题。但是,您确实需要引用NETStandard.Library。这是一个准确的工作库示例:

<强>在MyLibrary / project.json

{
   "description": "My awesome library",
   "dependencies": {
      "NETStandard.Library": "1.6.0"
   },
   "frameworks": {
      "netstandard1.3": { }
   }
}

如果ASP.NET库Web应用程序是同一个解决方案的一部分,那么它可以引用该库:

{
  (... other stuff)

  "dependencies": {
    "MyLibrary": {
      "target": "project"
    }
  }
}