我的应用程序有以下类:
public class Widget {
public virtual int Id { get; set; }
public virtual WidgetType Type { get; set; }
public virtual string Parameters { get; set; }
}
public class WidgetType {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string ParametersAssembly { get; set; }
public virtual string ParametersClass { get; set; }
}
现在,如果我想更新特定小部件的参数,我会说:
// Get the widget
var widget = GetWidget(1);
// Create an instance of the type parameters class
var parameters = Activator.CreateInstance(Assembly.LoadFrom(Server.MapPath("~/bin/"
+ widget.Type.ParametersAssembly + ".dll")).GetType(widget.Type.ParametersClass));
... Code here to update the parameters
widget.Parameters = new XmlSerializer(parameters.GetType()).Serialize(parameters);
当我希望获取参数时,我必须做相反的事情。你可以想象这变得相当乏味。我想知道是否可能自动执行此操作?
我一直在看 IUserType 接口。我找到了一篇类似的文章。但是我的问题有点复杂,因为我的类型会根据小部件的类型而变化。
如果有人能让我知道这是否可能以及如何实现,我将不胜感激。谢谢