通过基类 C# WPF 从类中检索属性

本文关键字:检索 属性 WPF 基类 | 更新日期: 2023-09-27 18:36:09

我有一个名为ModelBase的类:

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 ;
    }
}

但理想情况下,我只想尝试直接从对象实例中检索值,方法是知道它存在于基本模型的父级中。

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

这样做的原因是用户可以写入文本框并为该特定属性启动日志记录函数。

通过基类 C# WPF 从类中检索属性

是否可以在基类中创建虚拟属性/方法并在派生类中重写它。这样,您可以随时使用基类引用从对象中检索值。