2016-02-25 34 views
0

檢索類屬性我有一個名爲模型庫類:通過基類C#WPF

public abstract class ModelBase : ViewModelBase 
{ 
    public ModelBase 
    { 
     ProcessObjects.Instance.AddProcessObject(name, this); 
    } 
    public abstract void Dispose(); 
    public String Name { get; set; } 
    .... 
    .... 
} 

public class SomeModel1: ModelBase 
{ 
    public String customprop1 { get; set; } 
} 

public class SomeModel2: ModelBase 
{ 
    public String customprop2 { get; set; } 
} 

我把所有的對象實例的列表中的應用單。現在,在應用程序別的地方我想利用這個單列表從SomeModel2檢索customprop2。我可以檢索對象模型庫對象,並投它:

SomeMethod() 
{ 
    if(_obj.Name == "SomeModel2"){ 
     var _obj = obj as SomeModel2; 
     var _customProp2 = obj.customprop2 ; 
    } 
} 

但理想我只想嘗試從對象實例通過了解它直接檢索值有在basemodel的父。

try{ 
    //Some code to automatically cast the object as parent. 
    var _customProp2 = _obj.customProp2; 
}catch{ 
    //Notify user that his request failed 
} 

原因是用戶可以寫入文本框併爲該特定屬性啓動日誌記錄功能。

回答

1

你可以創建基類中的虛擬財產/法在派生類中重寫它。這樣您就可以隨時從基類引用的對象中檢索值。

+0

在我的基類,我有:公共抽象浮動getOutput();。每個家長都必須實現此方法。但這不是我想要爲每個房產做的事情。希望有一種方法可以減少強類型。 – Snovva1