在一个C#项目中有一个像这样的基类:
public abstract class AbstractVersionedBase
{
public string Version { get {
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}}
}
此项目的版本为0.0.1.1。
在另一个C#项目中,我有一个继承自AbstractVersionedBase的类,如下所示:
public class Versioned : AbstractVersionedBase
{
}
此项目的版本为0.0.1.2。
当我在具体类上调用属性时,它返回定义抽象类的程序集的版本。
var versioned = new Versioned();
Console.WriteLine("Version" + versioned.Version);
//writes 0.0.1.1, but I want 0.0.1.2
我希望后代类返回其程序集的版本,但不必重写代码以在后代类中执行此操作。你有什么想法吗?
答案 0 :(得分:3)
您需要获取使用GetType().Assembly
声明动态类型的程序集:
public string Version
{
get
{
return GetType().Assembly.GetName().Version.ToString();
}
}
答案 1 :(得分:2)
改为使用this.GetType().Assembly
。