diff --git a/DnsServerCore/Dns/Applications/DnsApplication.cs b/DnsServerCore/Dns/Applications/DnsApplication.cs index 63362648..ac4aa86e 100644 --- a/DnsServerCore/Dns/Applications/DnsApplication.cs +++ b/DnsServerCore/Dns/Applications/DnsApplication.cs @@ -34,6 +34,8 @@ namespace DnsServerCore.Dns.Applications readonly string _appName; readonly DnsApplicationAssemblyLoadContext _appContext = new DnsApplicationAssemblyLoadContext(); + + readonly Version _version; readonly Dictionary _dnsRequestHandlers; #endregion @@ -47,7 +49,7 @@ namespace DnsServerCore.Dns.Applications //load DLLs and handlers Dictionary dnsRequestHandlers = new Dictionary(); - Type dnsAppInterface = typeof(IDnsApplicationRequestHandler); + Type dnsRequestHandlerInterface = typeof(IDnsApplicationRequestHandler); Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); @@ -113,15 +115,21 @@ namespace DnsServerCore.Dns.Applications { foreach (Type interfaceType in classType.GetInterfaces()) { - if (interfaceType == dnsAppInterface) + if (interfaceType == dnsRequestHandlerInterface) { IDnsApplicationRequestHandler handler = Activator.CreateInstance(classType) as IDnsApplicationRequestHandler; dnsRequestHandlers.TryAdd(classType.FullName, handler); + + if (_version == null) + _version = assembly.GetName().Version; } } } } + if (_version == null) + _version = new Version(1, 0); + _dnsRequestHandlers = dnsRequestHandlers; } @@ -207,6 +215,9 @@ namespace DnsServerCore.Dns.Applications public string AppName { get { return _appName; } } + public Version Version + { get { return _version; } } + public IReadOnlyDictionary DnsRequestHandlers { get { return _dnsRequestHandlers; } }