返回后代类的汇编版本的属性

时间:2010-10-15 23:20:03

标签: c# .net assemblies version

在一个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

我希望后代类返回其程序集的版本,但不必重写代码以在后代类中执行此操作。你有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要获取使用GetType().Assembly声明动态类型的程序集:

public string Version
{
    get
    {
        return GetType().Assembly.GetName().Version.ToString(); 
    }
}

答案 1 :(得分:2)

改为使用this.GetType().Assembly