public override void Init() { var configRequest = new ConfigurationRequest(DesignScope.Current?.ServiceProvider); DesignerExtensions.LoadConfiguration(this, configRequest); }
public static void LoadConfiguration(this IConfiguration target, ConfigurationRequest request) { ArgumentValidation.NotNull("configuration", target); ArgumentValidation.NotNull("request", request); IVsHierarchy hier = VsHelper.GetCurrentHierarchy(request.ServiceProvider); Project proj = VsHelper.ToDteProject(hier); string filename = proj.FileName; string fullname = proj.FullName; string webConfigPath = null; foreach (var item in proj.ProjectItems) { var pItem = ((ProjectItem)item); if (pItem.Name == "Web.config" /* || pItem.Name == "App.config"*/) { for (short i = 0; i < pItem.FileCount; i++) { var ifilename = pItem.FileNames[i]; webConfigPath = ifilename; break; } } if (webConfigPath != null) { break; } } try { if (webConfigPath != null) { string root = webConfigPath.Substring(0, webConfigPath.LastIndexOf(Path.DirectorySeparatorChar)); WebConfigurationFileMap fileMap = CreateFileMap(root); var config = System.Web.Configuration.WebConfigurationManager.OpenMappedWebConfiguration(fileMap, "/web.config"); if ((target.Dependencies & ConfigurationDependency.ConnectionString) == ConfigurationDependency.ConnectionString) { var connectionString = config.ConnectionStrings.ConnectionStrings[request.ConnectionStringName]; if (connectionString != null) { target.ConnectionString = connectionString.ConnectionString; } else { MessageBox.Show($"Connection String not found {request.ConnectionStringName}"); } } if ((target.Dependencies & ConfigurationDependency.StyleSheets) == ConfigurationDependency.StyleSheets) { var section = (Configuration.WebSection)config.GetSection("webpx/web"); target.StyleSheets = WebResourceManagement.GetStyleSheets(section); } } else { MessageBox.Show("Web Config Not Found!"); } } catch (System.Exception ex) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0}{1}", ex.Message, Environment.NewLine); sb.AppendFormat("{0}{1}", ex.StackTrace, Environment.NewLine); MessageBox.Show(sb.ToString(), ex.GetType().FullName); } }