【问题标题】:Can I use dynamic in a .NET Standard class library?我可以在 .NET Standard 类库中使用动态吗?
【发布时间】:2016-12-12 10:14:31
【问题描述】:
我很难从常规的 Windows 桌面开发迁移到 ASP.NET Core MVC。我遇到的一个问题是创建我的解决方案。我想从 VS 2015 附带的默认项目中删除与 UI 无关的所有内容,并将其放入单独的项目中。
我注意到 ASP MVC Core 对 .NETCoreApp 的引用和类库项目对 .NETStandard 的引用。
我的问题是我需要在类库中使用dynamic关键字,它不支持。 MVC 项目支持没有任何问题。我猜这是因为不同的 .NET 版本。
-
NETStandard 和 NETCoreApp 有什么区别?
-
我能否创建一个使用与 MVC 项目相同的引用的类库,以便在其上使用 dynamic 关键字?
-
或者我应该坚持一个项目解决方案,将所有域、基础设施等放在同一个地方?
【问题讨论】:
标签:
c#
.net
asp.net-core-mvc
.net-core
【解决方案1】:
是的,可以将非 UI 代码放入单独的库中。如您所料,netcoreapp1.0 用于应用程序(控制台或 Web),netstandard1.X 用于类库。
.NET Standard 类库不应该对 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"
}
}
}