VS2010扩展,OptionPage,读出值

时间:2011-09-09 08:04:26

标签: visual-studio-2010

我目前正在使用新的VSX MEF扩展框架编写编辑边距。我没有找到VSPackage-OptionPage的对应物,因此我使用旧框架进行设置。

现在我面临从MEF组件中读出设置值的问题。我不能从那里调用GetDialogPage()。拥有这样的代码是个好主意:

public static MyPackage Instance;
public MyPackage () { Instance = this; } // Hopefully called only once?

public bool MyBoolOption { get { var opts = GetDialogPage(...) as ...; return opts.MyBoolOption; } }

我不确定这是否是“干净”的代码。

更有问题的是通知我的MEF组件发生了变化。例如。如何在OnApply()中通知MEF组件“嘿,是时候更新,因为XYZ已经改变了!”。

如何以干净的方式做到这一点?

祝你好运, D.R。

1 个答案:

答案 0 :(得分:0)

您可以将[Export]属性放在包类(MyPackage)上,然后使用[Import]将其导入MEF组件中:

[Export]
public class MyPackage : Package
{
}

[Export]
public class EditorExtension
{
    [Import]
    private MyPackage package = null;
}

当属性更改或调用OnApply时,您还可以在程序包上拥有事件。