如何获取ASP.NET Core应用程序名称?

时间:2017-07-24 17:56:24

标签: asp.net-core asp.net-core-1.1

我想在ASP.NET Core 1.1的页脚中显示

  

©2017 MyApplication

<p>&copy; 2017 @(ApplicationName)</p>

如何获取应用程序名称?

我在这个问题上找到了an article,但它对PlatformServices.Default.Application.ApplicationName感到困惑,因为它说不使用Microsoft.Extensions.PlatformAbstractions,但是没有说明要用什么代替应用程序名称......

2 个答案:

答案 0 :(得分:3)

你可以尝试:

@using System.Reflection;
<!DOCTYPE html>
<html>
 ....

    <footer>
        <p>&copy; 2017 - @Assembly.GetEntryAssembly().GetName().Name</p>
    </footer>
</html>

我不确定这是一个好方法,但它适用于我:)

enter image description here

答案 1 :(得分:1)

有很多方法可以实现它。这是我在项目中的表现。

我通常有项目名称与应用程序名称不同,可能有空格或更长。所以,我将项目名称和版本号保存在appsettings.json文件中。

<强> appsettings.json

{
  "AppSettings": {
    "Application": {
      "Name": "ASP.NET Core Active Directory Starter Kit",
      "Version": "2017.07.1"
    }
  }
}

<强> Startup.cs

appsettings.json文件中的设置加载到AppSettings POCO中。然后它会自动在DI容器中注册为IOptions<AppSettings>

public void ConfigureServices(IServiceCollection services)
{
   services.AddOptions();
   services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}

<强> AppSettings.cs

注意 :我有一些其他设置,以便我将它们全部放在AppSettings POCO中。

public class AppSettings
{
    public Application Application { get; set; }
}

public class Application
{
    public string Name { get; set; }
    public string Version { get; set; }
}

<强> Usage (_layout.cshtml)

IOptions<AppSettings>注入视图。 如果您愿意,也可以将其注入控制器。

@inject IOptions<AppSettings> AppSettings

<footer class="main-footer">
   @AppSettings.Value.Application.Version
   @AppSettings.Value.Application.Name</strong>
</footer>

enter image description here