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