2010-10-15 173 views
4

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

我想子類返回其組件的版本,但不必重寫代碼在子類中執行該操作。你有什麼想法?

+1

爲什麼轉換爲字符串?將類型保留爲'版本'可用於比較。 – si618 2010-10-16 10:34:02

回答

3

你需要獲得在動態類型都被定義爲GetType().Assembly大會:

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

改爲使用this.GetType().Assembly