最近在ASPCore Web Api(C#)上工作我想添加一个版本端点,这样我就可以知道我正在使用的给定API的哪个版本。它是一个公共API,因此我不想包含可能用于确定漏洞的内容,例如第三方软件包版本等。 到目前为止,我已经得到了以下内容。
// GET api/values
[HttpGet]
public string Get()
{
var attributes = Assembly.GetEntryAssembly().CustomAttributes;
string versionInfo=null;
foreach(var attribute in attributes)
{
if (attribute.AttributeType.Name.StartsWith("Assembly")&& attribute.AttributeType.Name.EndsWith("Attribute"))
{
string name = attribute.AttributeType.Name;
name = name.Substring(8, name.Length - 17);
versionInfo = string.Concat(versionInfo, name, ":");
versionInfo = string.Concat(versionInfo, attribute.ConstructorArguments.FirstOrDefault());
versionInfo = string.Concat(versionInfo, System.Environment.NewLine);
}
}
return versionInfo;
}
生产
Company:"Company Name"
Configuration:"Debug"
Description:"Package Description"
FileVersion:"0.0.1.0"
InformationalVersion:"0.0.1"
Product:"ProductName"
Title:"PackageTitle"
还有更多的行业标准方法吗?似乎这将是一个相当标准的问题但我没有看到任何一种标准的方法来实现这一点,从我与谷歌的简短约会。