VS2010 расширение, OptionPage, считывание значений - PullRequest
0 голосов
/ 09 сентября 2011

В настоящее время я пишу поля редактора, используя новую платформу расширения 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 голосов
/ 10 сентября 2011

Вы можете поместить атрибут [Export] в свой класс пакета (MyPackage), а затем импортировать его в компонент MEF, используя [Импорт]:

[Export]
public class MyPackage : Package
{
}

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

Вы также можете иметь события в вашем пакете, когда свойстваизменение или OnApply называется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...