我正在为具有 .NET API 的应用程序编写插件。程序的对象可以通过根对象类型的两种方法应用自定义属性,这些方法将键/值对分配给对象。
BaseAppObject.GetUserString(string key, string value);
BaseAppObject.SetUserString(string key, ref string value);
我正在创建一组我自己的自定义类,它们充当围绕BaseAppObject
. 我所有的类都派生自一个类Node
,该类有一个字段来存储对BaseAppObject
. Node
派生的其他属性和类型Node
使用关联实例的GetUserString
和SetUserString
方法BaseAppObject
直接读取或写入关联实例的属性值BaseAppObjects
。
这样,当应用程序关闭时,稍后重新生成这些包装类所需的所有信息都存储在实际文档中。
这是我的基类构造函数的简化版本:
public abstract class Node
{
BaseAppObject _baseObject;
public Node(BaseAppObject baseObject, string name)
{
this._baseObject = baseObject;
this.Name = name;
}
public string Name
{
get {
string name = "";
_baseObject.GetUserString("CPName", ref name);
return name;
}
set {
_baseObject.SetUserString("CPName", value);
}
}
}
其他派生的类Node
可能会添加类似这样的附加属性。
public CustomClass:Node
{
public CustomClass(BaseAppObject baseObj,string name, string color):base(baseObj,name)
public string Color
{
get {
string name = "";
this.BaseObject.GetUserString("Color", ref name);
return name;
}
set {
this.BaseObject.SetUserString("Color", value);
}
}
}
我试图找出最好的方法来设置我的类的构造函数和其他方法来启动和重新生成我的类的实例。我需要能够基于没有定义用户字符串的干净实例创建我的类的新实例BaseAppObject
,并且还需要根据存储在现有BaseAppObject
.