.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息

时间:2021-07-25 22:49:19

今天在 MSDN 博客上看到了 ASP.NET 5 Beta5 的发布消息(详见 ASP.NET 5 Beta5 Now Available),从中知道了 2 个新特性:

1. DNX: New IRuntimeEnvironment service. Use the new IRuntimeEnvironment service to get runtime details, like OS, CLR, and bitness.

2. MVC: C# 6 support in Razor.

正好借助我们 .NET 跨平台之旅的首站 —— 基于 CoreCLR 运行于 Linux 上的站点 about.cnblogs.com  体验一下。

我们要实现的功能是在页脚显示“Powered by {CLR名称} {操作系统名称}”,CLR 名称与操作系统名称通过 IRuntimeEnvironment 接口获取,显示字符串时使用 C# 6.0 的 string interpolation 特性。

借助 ASP.NET 5 从头注到脚的全身心依赖注入(dependecy injection)特性,我们只需在视图添加 2 行代码。

用 vim 打开 _Layout.cshtml 视图文件:

vi Views/Shared/_Layout.cshtml

在开头添加 IRuntimeEnvironment 接口的解析代码:

@inject Microsoft.Framework.Runtime.IRuntimeEnvironment env

在页脚添加调用 IRuntimeEnvironment 接口以及在视图中显示字符串的代码:

Powered by @($"{env.RuntimeType} on {env.OperatingSystem}")

运行站点:

dnx . kestrel

浏览器查看运行结果:

.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息

运行成功!

借助 ASP.NET 5 Beta5 的发布,.NET 跨平台之旅今天进行了一次徒步 100 米的旅程。虽然路程很短,但细微之处也可以感受到 .NET 跨平台的千里之行正在一步一步向前。