private static void SetAllUsers(IExtensionHeader header, bool value) { var prop = header.GetType().GetProperty(nameof(header.AllUsers)); if (prop != null && prop.CanWrite) { prop.SetValue(header, value); } }
private static void SetIsExperimental(IExtensionHeader header, bool value) { var prop = GetIsExperimentalProperty(header); if (prop != null && prop.CanWrite) { prop.SetValue(header, value); } }
private static bool SetAllUsers(IExtensionHeader header, bool allUsers) { var flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public; var allUsersProperty = header.GetType().GetProperty("AllUsers", flags); if (allUsersProperty == null || !allUsersProperty.CanWrite) { return(false); } allUsersProperty.SetValue(header, allUsers, null); return(true); }
private static void RemoveExtensionFromPendingDeletions(WritableSettingsStore settingsStore, IExtensionHeader extensionHeader) { const string PendingDeletionsCollectionPath = ExtensionManagerCollectionPath + @"\PendingDeletions"; var vsixToDeleteProperty = $"{extensionHeader.Identifier},{extensionHeader.Version}"; if (settingsStore.CollectionExists(PendingDeletionsCollectionPath) && settingsStore.PropertyExists(PendingDeletionsCollectionPath, vsixToDeleteProperty)) { settingsStore.DeleteProperty(PendingDeletionsCollectionPath, vsixToDeleteProperty); } }
private static PropertyInfo GetIsExperimentalProperty(IExtensionHeader header) => header.GetType().GetProperty("IsExperimental");