我有一个插件架构,在主应用程序中定义了一个抽象基类。它使用反射来加载包含派生实现的程序集。我想获取包含派生对象的程序集的版本信息。这是我的基类:
namespace My.AppNameSpace
{
public abstract class BaseClass
{
public Version Version
{
get
{
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
return new Version(version);
}
}
public abstract void DoStuff();
}
}
由于基类是主应用程序集的一部分,因此它始终返回执行应用程序的版本信息,而不是包含派生类实现的.dll的版本信息。我可以将Version访问器更改为abstract
,这样就像我想要的那样工作了。但是然后我需要将这些相同的几行代码添加到每个实现插件中。
是否有什么技巧可以从存在于单独程序集中的基类代码中获取派生对象的版本信息?