private string CreateNewDataSource(System.Type dataSourceType) { string text = this._idTextBox.Text; string str2 = string.Empty; if (dataSourceType != null) { object obj2 = Activator.CreateInstance(dataSourceType); if (obj2 == null) { return(str2); } System.Web.UI.Control newControl = obj2 as System.Web.UI.Control; if (newControl == null) { return(str2); } newControl.ID = text; ISite serviceProvider = this.GetSite(); if (serviceProvider == null) { return(str2); } INameCreationService service = (INameCreationService)serviceProvider.GetService(typeof(INameCreationService)); if (service != null) { try { service.ValidateName(text); } catch (Exception exception) { UIServiceHelper.ShowError(serviceProvider, System.Design.SR.GetString("CreateDataSource_NameNotValid", new object[] { exception.Message })); this._idTextBox.Focus(); return(str2); } IContainer container = serviceProvider.Container; if (container != null) { ComponentCollection components = container.Components; if ((components != null) && (components[text] != null)) { UIServiceHelper.ShowError(serviceProvider, System.Design.SR.GetString("CreateDataSource_NameNotUnique")); this._idTextBox.Focus(); return(str2); } } } IDesignerHost host = (IDesignerHost)serviceProvider.GetService(typeof(IDesignerHost)); if (host == null) { return(str2); } IComponent rootComponent = host.RootComponent; if (rootComponent == null) { return(str2); } WebFormsRootDesigner designer = host.GetDesigner(rootComponent) as WebFormsRootDesigner; if (designer == null) { return(str2); } System.Web.UI.Control component = this.GetComponent() as System.Web.UI.Control; str2 = designer.AddControlToDocument(newControl, component, ControlLocation.After); IDesigner designer2 = host.GetDesigner(newControl); IDataSourceDesigner designer3 = designer2 as IDataSourceDesigner; if (designer3 != null) { if (designer3.CanConfigure && this._configure) { designer3.Configure(); } return(str2); } IHierarchicalDataSourceDesigner designer4 = designer2 as IHierarchicalDataSourceDesigner; if (((designer4 != null) && designer4.CanConfigure) && this._configure) { designer4.Configure(); } } return(str2); }