/// <include file='doc\VSDesignerLoader.uex' path='docs/doc[@for="VSDesignerLoader.CreateCodeLoader"]/*' /> /// <devdoc> /// Called to create the MCM loader. /// </devdoc> protected override CodeLoader CreateCodeLoader(TextBuffer buffer, IDesignerLoaderHost host) { CodeLoader loader = null; // Get the context object off of the hierarchy, and ask it for an IVSMDCodeDomProvider // instance. // IVsHierarchy hier = Hierarchy; if (hier is IVsProject) { NativeMethods.IOleServiceProvider oleProvider = (NativeMethods.IOleServiceProvider)((IVsProject)hier).GetItemContext(ItemId); if (oleProvider != null) { ServiceProvider contextProv = new ServiceProvider(oleProvider); IVSMDCodeDomProvider codeDomProvider = (IVSMDCodeDomProvider)contextProv.GetService(typeof(IVSMDCodeDomProvider)); if (codeDomProvider != null) { loader = new VsCodeDomLoader(this, hier, ItemId, (CodeDomProvider)codeDomProvider.CodeDomProvider, buffer, host); } } } if (loader == null) { throw new NotSupportedException(SR.GetString(SR.DESIGNERLOADERNoLanguageSupport)); } return(loader); }
public VsCodeDomLoader(DesignerLoader loader, IVsHierarchy hier, int itemid, CodeDomProvider provider, TextBuffer buffer, IDesignerLoaderHost host) : base(loader, provider, buffer, host) { this.vsHierarchy = hier; this.itemid = itemid; }