Мое приложение имеет следующие классы:
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.Я нашел статью , которая вроде как.Однако моя проблема немного сложнее, так как мой тип меняется в зависимости от типа виджета.
Буду признателен, если кто-нибудь сообщит мне, возможно ли это и, возможно, каким образом это может быть достигнуто.Спасибо