我想要的是一个可以具有任何类型的可配置属性/变量的类。 并且在界面中定义了设置和获取这些配置的方式。 它将成为某种插件架构。每个插件都有自己的unknonwn类型的可配置参数(让它成为字符串,double,int,等等)。用户可以在GUI中设置这些,并且这些将由插件的主机应用程序存储在数据库中。
问题是,在设置任何类型的这些配置时,我怎么不知道如何实现这种抽象形式。如果没有必要将Object
转换为例如,那就太好了。配置课程时double
。
我有这个pseudo
代码让自己更清楚,见下文。
public class Configurable<T>
{
string Name;
T Value;
string Description;
}
public interface iAmConfigurable
{
void Set(Configurable<T>);
Configurable<T> Get(string name);
}
public abstract class MyBaseClass : iAmConfigurable
{
public abstract void Set(Configurable<T>);
public abstract Configurable<T> Get(string name);
}
public class MyDerivedClass : MyBaseClass
{
Configurable<int> MinimumSlope = new Configurable<int>
{
Name = "MinimumSlope",
Value = 20,
Description = "The lowest the slope of the trend may get before triggering the alarm"
}
public abstract void Set(string name, T value)
{
if(name == "MinimumSlope") MinimumSlope.Value = value;
}
public abstract Configurable<T> Get(string name)
{
if(name == "MinimumSlope") return MinimumSlope;
}
}