如何在类加载的程序集中调用暂停的方法

时间:2013-12-13 16:30:54

标签: c# wpf mvvm viewmodel .net-assembly

我动态加载程序集,我通过Activator.CreateInstance创建UserControl View的实例。

classType = a.GetType(assembly + "." + constructor);
obj = Activator.CreateInstance(classType);

我有一个链接到视图的ViewModel。 ViewModel有一个计时器,它在构造函数中启动。

我想动态调用Pause()和Resume()这样的方法来停止和启动这个计时器。

我的想法是这个方法必须在View的代码隐藏中。我会保持classType和obj,所以我可以调用View的方法。然而,在不打乱MVVM的情况下,通知ViewModel暂停或从代码隐藏中恢复的方式让我感到困惑。可以使用一些建议。

[编辑] 以下忽略已作为单独的问题公开:https://stackoverflow.com/questions/20572205/how-call-dispose-method-with-loaded-assembly

如果我想处理这个类的实例。我试过了

var methodInfo = CurrentAssemblyClassType.GetMethod("Dispose");
var methodInfo = CurrentAssemblyClassType.GetMethod("Close");

methodInfo在两者上都为空,不知道要调用什么。

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
}

1 个答案:

答案 0 :(得分:0)

在MVVM中,View可以通过“命令”告诉ViewModel该做什么

动态加载程序集没有什么特别之处