我有将所有属性值保存在Dictionary中的基类。但是我想属性值和字典中的值具有保存价值。如果属性值更改,则更改字典值;如果dictionary中的值更改,则更改属性值。在构造函数中,我使用反射,但是在完成构造函数后,由于性能我不想使用反射。
以下是字典值的类型(在我的项目中更复杂):
public class AgentProperty
{
public object Value;
public string Name;
public AgentProperty(string name, object value)
{
Value = value;
Name = name;
}
}
基类如下:
public class BaseClass
{
private Dictionary<string,AgentProperty> Dictionary = new Dictionary<string, AgentProperty>();
public AgentProperty this[string key]
{
get { return (AgentProperty)Dictionary[key]; }
set { Dictionary[key] = value; }
}
public void Add(AgentProperty ap)
{
Dictionary.Add(ap.Name, ap);
}
public void SetDict(BaseClass o)
{
var objectType = o.GetType();
foreach (var property in objectType.GetProperties())
{
AgentProperty agentProperty = new AgentProperty(property.Name, property.GetValue(o));
Add(agentProperty);
}
}
}
从BaseClass继承的示例类。此类可以具有任何类型的属性。
public class TmpClass : BaseClass
{
public TmpClass(){
SetDict(this);
}
public string X { get; set; }
public int y { get; set; }
public string Z { get; set; }
public TimeSpan T { get; set; }
}
有什么办法吗?