public static InterfaceType CreateSitedInstance <InterfaceType>(this Microsoft.VisualStudio.OLE.Interop.IServiceProvider serviceProvider, Guid clsid) where InterfaceType : class { InterfaceType interfaceType; using (ServiceProvider serviceProvider1 = new ServiceProvider(serviceProvider)) { interfaceType = OleServiceProviderExtensions.CreateSitedInstance <InterfaceType>(serviceProvider1, clsid); } return(interfaceType); }
internal static InterfaceType CreateSitedInstance <InterfaceType>(System.IServiceProvider serviceProvider, Guid clsid) where InterfaceType : class { InterfaceType interfaceType = OleServiceProviderExtensions.CreateInstance <InterfaceType>(serviceProvider, clsid); if (interfaceType != null) { IObjectWithSite objectWithSite = (object)interfaceType as IObjectWithSite; Microsoft.VisualStudio.OLE.Interop.IServiceProvider service = serviceProvider.GetService <Microsoft.VisualStudio.OLE.Interop.IServiceProvider>(); if (objectWithSite == null || service == null) { interfaceType = default(InterfaceType); } else { objectWithSite.SetSite(service); } } return(interfaceType); }