使用代码在 Orchard CMS 1.8+ 中获取模块的版本号
Get a module's version number in Orchard CMS 1.8+ using code
有时,我喜欢记录模块的版本号。如何在代码中(以编程方式)获取模块的版本号?
与在控制器的构造函数中请求 IOrchardServices
的方式相同,您可以请求 IExtensionManager
。然后,使用带有模块名称的 GetExtension
方法(如 module.txt id 所示),returns 和 ExtensionDescriptor
公开了 Version
属性 以及其他有用的属性。
您可以在 RecipeHarvester 源代码中查看使用 IExtensionManager
的示例。
如果您需要从代码中的任何位置访问模块,您需要先初始化一个 ExtensionManager。为此,您需要当前的 workContext。我就是这样做的。
public class Extensioner
{
public IExtensionManager _manager { get; set; }
public Extensioner()
{
var httpContextAccessor = System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver.GetService(
typeof(IHttpContextAccessor)) as IHttpContextAccessor;
var workContext = WorkContextExtensions.GetWorkContext(httpContextAccessor.Current().Request.RequestContext);
_manager = workContext.Resolve<IExtensionManager>();
}
public string getModuleVersion(string moduleName)
{
var _ver = "unknown";
if (_manager != null)
{
_ver = _manager.GetExtension(moduleName).Version;
}
return _ver;
}
}
给我指路的页面:
还有一些理论:
https://orcharddojo.net/orchard-resources/Library/Wiki/WorkContext
有时,我喜欢记录模块的版本号。如何在代码中(以编程方式)获取模块的版本号?
与在控制器的构造函数中请求 IOrchardServices
的方式相同,您可以请求 IExtensionManager
。然后,使用带有模块名称的 GetExtension
方法(如 module.txt id 所示),returns 和 ExtensionDescriptor
公开了 Version
属性 以及其他有用的属性。
您可以在 RecipeHarvester 源代码中查看使用 IExtensionManager
的示例。
如果您需要从代码中的任何位置访问模块,您需要先初始化一个 ExtensionManager。为此,您需要当前的 workContext。我就是这样做的。
public class Extensioner
{
public IExtensionManager _manager { get; set; }
public Extensioner()
{
var httpContextAccessor = System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver.GetService(
typeof(IHttpContextAccessor)) as IHttpContextAccessor;
var workContext = WorkContextExtensions.GetWorkContext(httpContextAccessor.Current().Request.RequestContext);
_manager = workContext.Resolve<IExtensionManager>();
}
public string getModuleVersion(string moduleName)
{
var _ver = "unknown";
if (_manager != null)
{
_ver = _manager.GetExtension(moduleName).Version;
}
return _ver;
}
}
给我指路的页面:
还有一些理论: https://orcharddojo.net/orchard-resources/Library/Wiki/WorkContext