forked from everythingfunctional/fpm-for-VS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBaseOptionPage.cs
31 lines (26 loc) · 836 Bytes
/
BaseOptionPage.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using Microsoft.VisualStudio.Shell;
namespace fpm_for_VS.Options
{
/// <summary>
/// A base class for a DialogPage to show in Tools -> Options.
/// </summary>
internal class BaseOptionPage<T> : DialogPage where T : BaseOptionModel<T>, new()
{
private BaseOptionModel<T> _model;
public BaseOptionPage()
{
#pragma warning disable VSTHRD104 // Offer async methods
_model = ThreadHelper.JoinableTaskFactory.Run(BaseOptionModel<T>.CreateAsync);
#pragma warning restore VSTHRD104 // Offer async methods
}
public override object AutomationObject => _model;
public override void LoadSettingsFromStorage()
{
_model.Load();
}
public override void SaveSettingsToStorage()
{
_model.Save();
}
}
}