gpt4 book ai didi

c# - GetExecutingAssembly() 用于不同程序集中的派生类

转载 作者:可可西里 更新时间:2023-11-01 08:15:57 26 4
gpt4 key购买 nike

我有一个插件架构,其中在主应用程序中定义了一个抽象基类。它使用反射来加载具有基类的派生实现的程序集。我想获取包含派生对象的程序集的版本信息。这是我的基类:

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,它会按照我的意愿工作。但随后我需要将同样的几行代码添加到每个实现插件中。

从存在于单独程序集中的基类中的代码获取派生对象的版本信息是否有一些技巧?

最佳答案

改用 this.GetType().Assembly

关于c# - GetExecutingAssembly() 用于不同程序集中的派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22941651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com