我动态加载程序集,通过Activator.CreateInstance.创建UserControl视图的实例
classType = a.GetType(assembly + "." + constructor);
obj = Activator.CreateInstance(classType);
我有一个链接到视图的ViewModel。ViewModel有一个计时器,它在构造函数中启动该计时器。
我想动态调用一个像Pause()和Resume()这样的方法来停止和启动这个计时器。
我的想法是,这个方法必须在View的代码后面。我将保留classType和obj,这样我就可以调用View的方法。然而,在不干扰MVVM的情况下,通知ViewModel从代码后面暂停或恢复的方法让我很困惑。
[EDIT]忽略以下内容已作为一个单独的问题打开:https://stackoverflow.com/questions/20572205/how-call-dispose-method-with-loaded-assembly
如果我想处理这个类的一个实例。我试过
var methodInfo = CurrentAssemblyClassType.GetMethod("Dispose");
var methodInfo = CurrentAssemblyClassType.GetMethod("Close");
methodInfo在两者上都为null,不确定要调用什么。
public partial class Blank : UserControl, IDisposable
{
public Blank(String key)
{
InitializeComponent();
}
public void Close()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
}
}
~Blank()
{
Dispose(false);
}
#region IDisposable Members
void IDisposable.Dispose()
{
Close();
}
#endregion
}
在MVVM中,视图可以通过"命令"告诉ViewModel要做什么
动态加载的程序集没有什么特别之处