laatzen/Common/Utils/UserAccessCtrl/SoftwareVersion.cs

54 lines
1.4 KiB
C#

using System;
using System.Reflection;
namespace Xylem.Common.Utils.UserAccessCtrl
{
public struct SoftwareVersion
{
private SoftwareVersion(Boolean initialize)
{
Name = "unknown";
MajorV = 0;
MinorV = 0;
BuildV = 0;
VersionString = "?";
AssemblyName = Assembly
.GetEntryAssembly()?
.GetName();
if (AssemblyName != null)
{
Name = AssemblyName.Name;
var version = AssemblyName.Version;
MajorV = version.Major;
MinorV = version.Minor;
BuildV = version.Build;
VersionString = $"{MajorV}.{MinorV}.{BuildV}";
}
}
public String Name { get; internal set; }
public Int32 MajorV { get; internal set; }
public Int32 MinorV { get; internal set; }
public Int32 BuildV { get; internal set; }
public String VersionString { get; }
public AssemblyName AssemblyName { get; }
public override String ToString()
=> $"{nameof(Version)}: {VersionString}";
public static SoftwareVersion Current = new SoftwareVersion(true);
public static implicit operator String(SoftwareVersion assemblyVersion)
=> assemblyVersion.ToString();
}
}