我可以在.NET标准类库中使用动态吗

本文关键字:动态 类库 NET 标准 我可以 | 更新日期: 2023-09-27 18:01:15

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

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

我的问题是,我需要在类库中使用dynamic关键字,但它不支持。MVC项目支持,没有任何问题。我想这是因为不同的.NET版本。

  1. NETStandard和NETCoreApp之间有什么区别?

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

  3. 或者,我应该坚持使用一个项目解决方案,将所有域、基础设施等放在同一个位置?

我可以在.NET标准类库中使用动态吗

是的,可以将非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 Core web应用程序是以下相同解决方案的一部分,则它可以引用此库:

{
  (... other stuff)
  "dependencies": {
    "MyLibrary": {
      "target": "project"
    }
  }
}