forked from npgsql/npgsql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNpgsqlProviderRegistration.cs
More file actions
58 lines (53 loc) · 3.17 KB
/
NpgsqlProviderRegistration.cs
File metadata and controls
58 lines (53 loc) · 3.17 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using Microsoft.VisualStudio.Data;
using Microsoft.VisualStudio.Data.Services.SupportEntities;
using Microsoft.VisualStudio.Shell;
namespace Npgsql.VSIX
{
class NpgsqlProviderRegistration : RegistrationAttribute
{
const string DataSourceGuid = "7931728a-ebfb-4677-ad6b-995e29AA15c2";
const string ProviderGuid = "70ba90f8-3027-4aF1-9b15-37abbd48744c";
public override void Register(RegistrationContext context)
{
Key providerKey = null;
try
{
providerKey = context.CreateKey($@"DataProviders\{{{ProviderGuid}}}");
providerKey.SetValue(null, ".NET Framework Data Provider for PostgreSQL");
providerKey.SetValue("AssociatedSource", $"{{{DataSourceGuid}}}");
providerKey.SetValue("Description", $"Provider_Description, {GetType().Namespace}.Resources, Npgsql.VSIX");
providerKey.SetValue("DisplayName", $"Provider_DisplayName, {GetType().Namespace}.Resources, Npgsql.VSIX");
providerKey.SetValue("FactoryService", $"{{{NpgsqlProviderObjectFactory.Guid}}}");
providerKey.SetValue("InvariantName", Constants.NpgsqlInvariantName);
providerKey.SetValue("PlatformVersion", "2.0");
providerKey.SetValue("ShortDisplayName", $"Provider_ShortDisplayName, {GetType().Namespace}.Resources, Npgsql.VSIX");
providerKey.SetValue("Technology", "{77AB9A9D-78B9-4ba7-91AC-873F5338F1D2}");
var supportedObjectsKey = providerKey.CreateSubkey("SupportedObjects");
supportedObjectsKey.CreateSubkey(nameof(IVsDataConnectionSupport));
supportedObjectsKey.CreateSubkey(nameof(IVsDataConnectionUIControl));
supportedObjectsKey.CreateSubkey(nameof(IVsDataConnectionProperties));
supportedObjectsKey.CreateSubkey(nameof(IVsDataConnectionEquivalencyComparer));
supportedObjectsKey.CreateSubkey(nameof(IVsDataSourceInformation));
supportedObjectsKey.CreateSubkey(nameof(IVsDataObjectSupport));
supportedObjectsKey.CreateSubkey(nameof(IVsDataViewSupport));
var dataSourceKey = context.CreateKey($@"DataSources\{{{DataSourceGuid}}}");
dataSourceKey.SetValue(null, "PostgreSQL Database");
dataSourceKey.SetValue("DefaultProvider", $"{{{ProviderGuid}}}");
var supportingProviderKey = dataSourceKey
.CreateSubkey("SupportingProviders")
.CreateSubkey($"{{{ProviderGuid}}}");
supportingProviderKey.SetValue("Description", $"Provider_Description, {GetType().Namespace}.Resources, Npgsql.VSIX");
supportingProviderKey.SetValue("DisplayName", $"Provider_DisplayName, {GetType().Namespace}.Resources, Npgsql.VSIX");
}
finally
{
providerKey?.Close();
}
}
public override void Unregister(RegistrationContext context)
{
context.RemoveKey($@"DataProviders\{{{ProviderGuid}}}");
context.RemoveKey($@"DataSources\{{{DataSourceGuid}}}");
}
}
}